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 2025/12/12 09:05:29 UTC

(pulsar-site) branch gen-cpp-apidoc created (now 90d360fece6)

This is an automated email from the ASF dual-hosted git repository.

xyz pushed a change to branch gen-cpp-apidoc
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git


      at 90d360fece6 Add CPP client v4.0.0 API docs

This branch includes the following new commits:

     new 90d360fece6 Add CPP client v4.0.0 API docs

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(pulsar-site) 01/01: Add CPP client v4.0.0 API docs

Posted by xy...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xyz pushed a commit to branch gen-cpp-apidoc
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git

commit 90d360fece6f0a3bab4fc09b2af53c33e0d763ac
Author: Yunze Xu <xy...@163.com>
AuthorDate: Fri Dec 12 17:05:15 2025 +0800

    Add CPP client v4.0.0 API docs
---
 .../api/cpp/4.0.x/_authentication_8h_source.html   |  425 ++++
 .../cpp/4.0.x/_batch_receive_policy_8h_source.html |  127 +
 .../4.0.x/_broker_consumer_stats_8h_source.html    |  172 ++
 static/api/cpp/4.0.x/_client_8h_source.html        |  254 ++
 .../cpp/4.0.x/_client_configuration_8h_source.html |  303 +++
 .../api/cpp/4.0.x/_compression_type_8h_source.html |  108 +
 .../4.0.x/_console_logger_factory_8h_source.html   |  120 +
 static/api/cpp/4.0.x/_consumer_8h_source.html      |  267 +++
 .../4.0.x/_consumer_configuration_8h_source.html   |  405 ++++
 .../_consumer_crypto_failure_action_8h_source.html |  109 +
 .../4.0.x/_consumer_event_listener_8h_source.html  |  115 +
 .../cpp/4.0.x/_consumer_interceptor_8h_source.html |  136 ++
 static/api/cpp/4.0.x/_consumer_type_8h_source.html |  117 +
 .../cpp/4.0.x/_crypto_key_reader_8h_source.html    |  147 ++
 .../cpp/4.0.x/_dead_letter_policy_8h_source.html   |  129 +
 .../_dead_letter_policy_builder_8h_source.html     |  128 +
 .../cpp/4.0.x/_deprecated_exception_8h_source.html |  112 +
 .../cpp/4.0.x/_encryption_context_8h_source.html   |  164 ++
 .../cpp/4.0.x/_encryption_key_info_8h_source.html  |  146 ++
 .../cpp/4.0.x/_file_logger_factory_8h_source.html  |  121 +
 .../api/cpp/4.0.x/_initial_position_8h_source.html |  105 +
 .../cpp/4.0.x/_key_shared_policy_8h_source.html    |  158 ++
 static/api/cpp/4.0.x/_key_value_8h_source.html     |  133 ++
 static/api/cpp/4.0.x/_logger_8h_source.html        |  134 ++
 static/api/cpp/4.0.x/_message_8h_source.html       |  234 ++
 static/api/cpp/4.0.x/_message_batch_8h_source.html |  126 +
 .../api/cpp/4.0.x/_message_builder_8h_source.html  |  180 ++
 static/api/cpp/4.0.x/_message_id_8h_source.html    |  178 ++
 .../cpp/4.0.x/_message_id_builder_8h_source.html   |  139 ++
 .../4.0.x/_message_routing_policy_8h_source.html   |  138 ++
 static/api/cpp/4.0.x/_producer_8h_source.html      |  170 ++
 .../4.0.x/_producer_configuration_8h_source.html   |  335 +++
 .../_producer_crypto_failure_action_8h_source.html |  107 +
 .../cpp/4.0.x/_producer_interceptor_8h_source.html |  132 ++
 .../4.0.x/_protobuf_native_schema_8h_source.html   |  103 +
 static/api/cpp/4.0.x/_reader_8h_source.html        |  176 ++
 .../cpp/4.0.x/_reader_configuration_8h_source.html |  242 ++
 .../4.0.x/_regex_subscription_mode_8h_source.html  |  112 +
 static/api/cpp/4.0.x/_result_8h_source.html        |  222 ++
 static/api/cpp/4.0.x/_schema_8h_source.html        |  220 ++
 static/api/cpp/4.0.x/_table_view_8h_source.html    |  154 ++
 .../4.0.x/_table_view_configuration_8h_source.html |  113 +
 .../api/cpp/4.0.x/_topic_metadata_8h_source.html   |  110 +
 static/api/cpp/4.0.x/_typed_message_8h_source.html |  126 +
 .../4.0.x/_typed_message_builder_8h_source.html    |  158 ++
 static/api/cpp/4.0.x/annotated.html                |  144 ++
 .../cpp/4.0.x/c_2_authentication_8h_source.html    |  125 +
 static/api/cpp/4.0.x/c_2_client_8h_source.html     |  205 ++
 static/api/cpp/4.0.x/c_2_consumer_8h_source.html   |  207 ++
 static/api/cpp/4.0.x/c_2_message_8h_source.html    |  173 ++
 static/api/cpp/4.0.x/c_2_producer_8h_source.html   |  137 ++
 static/api/cpp/4.0.x/c_2_reader_8h_source.html     |  135 ++
 static/api/cpp/4.0.x/c_2_result_8h_source.html     |  166 ++
 static/api/cpp/4.0.x/classes.html                  |  130 +
 .../4.0.x/classpulsar_1_1_auth_athenz-members.html |  102 +
 .../api/cpp/4.0.x/classpulsar_1_1_auth_athenz.html |  255 ++
 .../api/cpp/4.0.x/classpulsar_1_1_auth_athenz.png  |  Bin 0 -> 596 bytes
 .../4.0.x/classpulsar_1_1_auth_basic-members.html  |  104 +
 .../api/cpp/4.0.x/classpulsar_1_1_auth_basic.html  |  320 +++
 .../api/cpp/4.0.x/classpulsar_1_1_auth_basic.png   |  Bin 0 -> 586 bytes
 .../classpulsar_1_1_auth_factory-members.html      |   99 +
 .../cpp/4.0.x/classpulsar_1_1_auth_factory.html    |  227 ++
 .../4.0.x/classpulsar_1_1_auth_oauth2-members.html |  102 +
 .../api/cpp/4.0.x/classpulsar_1_1_auth_oauth2.html |  260 ++
 .../api/cpp/4.0.x/classpulsar_1_1_auth_oauth2.png  |  Bin 0 -> 592 bytes
 .../4.0.x/classpulsar_1_1_auth_tls-members.html    |  103 +
 static/api/cpp/4.0.x/classpulsar_1_1_auth_tls.html |  286 +++
 static/api/cpp/4.0.x/classpulsar_1_1_auth_tls.png  |  Bin 0 -> 568 bytes
 .../4.0.x/classpulsar_1_1_auth_token-members.html  |  104 +
 .../api/cpp/4.0.x/classpulsar_1_1_auth_token.html  |  323 +++
 .../api/cpp/4.0.x/classpulsar_1_1_auth_token.png   |  Bin 0 -> 585 bytes
 .../classpulsar_1_1_authentication-members.html    |   99 +
 .../cpp/4.0.x/classpulsar_1_1_authentication.html  |  230 ++
 .../cpp/4.0.x/classpulsar_1_1_authentication.png   |  Bin 0 -> 1479 bytes
 ...r_1_1_authentication_data_provider-members.html |  102 +
 ...asspulsar_1_1_authentication_data_provider.html |  316 +++
 ...asspulsar_1_1_batch_receive_policy-members.html |   97 +
 .../classpulsar_1_1_batch_receive_policy.html      |  228 ++
 ...sspulsar_1_1_broker_consumer_stats-members.html |  111 +
 .../classpulsar_1_1_broker_consumer_stats.html     |  480 ++++
 .../classpulsar_1_1_cached_token-members.html      |   96 +
 .../cpp/4.0.x/classpulsar_1_1_cached_token.html    |  155 ++
 .../cpp/4.0.x/classpulsar_1_1_client-members.html  |  124 +
 static/api/cpp/4.0.x/classpulsar_1_1_client.html   | 1142 +++++++++
 ...asspulsar_1_1_client_configuration-members.html |  147 ++
 .../classpulsar_1_1_client_configuration.html      | 1126 +++++++++
 ...spulsar_1_1_console_logger_factory-members.html |   96 +
 .../classpulsar_1_1_console_logger_factory.html    |  163 ++
 .../classpulsar_1_1_console_logger_factory.png     |  Bin 0 -> 754 bytes
 .../4.0.x/classpulsar_1_1_consumer-members.html    |  139 ++
 static/api/cpp/4.0.x/classpulsar_1_1_consumer.html | 1107 +++++++++
 ...spulsar_1_1_consumer_configuration-members.html |  176 ++
 .../classpulsar_1_1_consumer_configuration.html    | 1807 ++++++++++++++
 ...pulsar_1_1_consumer_event_listener-members.html |   95 +
 .../classpulsar_1_1_consumer_event_listener.html   |  180 ++
 ...asspulsar_1_1_consumer_interceptor-members.html |   98 +
 .../classpulsar_1_1_consumer_interceptor.html      |  304 +++
 .../classpulsar_1_1_crypto_key_reader-members.html |   96 +
 .../4.0.x/classpulsar_1_1_crypto_key_reader.html   |  207 ++
 .../4.0.x/classpulsar_1_1_crypto_key_reader.png    |  Bin 0 -> 845 bytes
 ...classpulsar_1_1_dead_letter_policy-members.html |   97 +
 .../4.0.x/classpulsar_1_1_dead_letter_policy.html  |  171 ++
 ...sar_1_1_dead_letter_policy_builder-members.html |   97 +
 ...classpulsar_1_1_dead_letter_policy_builder.html |  213 ++
 ...lsar_1_1_default_crypto_key_reader-members.html |   99 +
 .../classpulsar_1_1_default_crypto_key_reader.html |  243 ++
 .../classpulsar_1_1_default_crypto_key_reader.png  |  Bin 0 -> 835 bytes
 ...asspulsar_1_1_deprecated_exception-members.html |   93 +
 .../classpulsar_1_1_deprecated_exception.html      |  107 +
 .../4.0.x/classpulsar_1_1_deprecated_exception.png |  Bin 0 -> 697 bytes
 ...classpulsar_1_1_encryption_context-members.html |  102 +
 .../4.0.x/classpulsar_1_1_encryption_context.html  |  330 +++
 ...lasspulsar_1_1_encryption_key_info-members.html |  100 +
 .../4.0.x/classpulsar_1_1_encryption_key_info.html |  224 ++
 ...lasspulsar_1_1_file_logger_factory-members.html |   96 +
 .../4.0.x/classpulsar_1_1_file_logger_factory.html |  193 ++
 .../4.0.x/classpulsar_1_1_file_logger_factory.png  |  Bin 0 -> 717 bytes
 .../classpulsar_1_1_key_shared_policy-members.html |  104 +
 .../4.0.x/classpulsar_1_1_key_shared_policy.html   |  281 +++
 .../4.0.x/classpulsar_1_1_key_value-members.html   |   99 +
 .../api/cpp/4.0.x/classpulsar_1_1_key_value.html   |  224 ++
 .../cpp/4.0.x/classpulsar_1_1_logger-members.html  |  100 +
 static/api/cpp/4.0.x/classpulsar_1_1_logger.html   |  187 ++
 .../classpulsar_1_1_logger_factory-members.html    |   94 +
 .../cpp/4.0.x/classpulsar_1_1_logger_factory.html  |  147 ++
 .../cpp/4.0.x/classpulsar_1_1_logger_factory.png   |  Bin 0 -> 1049 bytes
 .../cpp/4.0.x/classpulsar_1_1_message-members.html |  137 ++
 static/api/cpp/4.0.x/classpulsar_1_1_message.html  |  645 +++++
 static/api/cpp/4.0.x/classpulsar_1_1_message.png   |  Bin 0 -> 699 bytes
 .../classpulsar_1_1_message_batch-members.html     |   97 +
 .../cpp/4.0.x/classpulsar_1_1_message_batch.html   |  107 +
 .../classpulsar_1_1_message_builder-members.html   |  114 +
 .../cpp/4.0.x/classpulsar_1_1_message_builder.html |  540 +++++
 .../cpp/4.0.x/classpulsar_1_1_message_builder.png  |  Bin 0 -> 1448 bytes
 .../4.0.x/classpulsar_1_1_message_id-members.html  |  127 +
 .../api/cpp/4.0.x/classpulsar_1_1_message_id.html  |  354 +++
 ...classpulsar_1_1_message_id_builder-members.html |  101 +
 .../4.0.x/classpulsar_1_1_message_id_builder.html  |  296 +++
 ...spulsar_1_1_message_routing_policy-members.html |   95 +
 .../classpulsar_1_1_message_routing_policy.html    |  166 ++
 .../4.0.x/classpulsar_1_1_oauth2_flow-members.html |   97 +
 .../api/cpp/4.0.x/classpulsar_1_1_oauth2_flow.html |  181 ++
 ...lasspulsar_1_1_oauth2_token_result-members.html |  103 +
 .../4.0.x/classpulsar_1_1_oauth2_token_result.html |  282 +++
 .../4.0.x/classpulsar_1_1_producer-members.html    |  109 +
 static/api/cpp/4.0.x/classpulsar_1_1_producer.html |  407 ++++
 ...spulsar_1_1_producer_configuration-members.html |  167 ++
 .../classpulsar_1_1_producer_configuration.html    | 1327 +++++++++++
 ...asspulsar_1_1_producer_interceptor-members.html |   97 +
 .../classpulsar_1_1_producer_interceptor.html      |  265 +++
 .../cpp/4.0.x/classpulsar_1_1_reader-members.html  |  113 +
 static/api/cpp/4.0.x/classpulsar_1_1_reader.html   |  496 ++++
 ...asspulsar_1_1_reader_configuration-members.html |  131 +
 .../classpulsar_1_1_reader_configuration.html      |  881 +++++++
 .../4.0.x/classpulsar_1_1_schema_info-members.html |   99 +
 .../api/cpp/4.0.x/classpulsar_1_1_schema_info.html |  283 +++
 .../4.0.x/classpulsar_1_1_table_view-members.html  |  104 +
 .../api/cpp/4.0.x/classpulsar_1_1_table_view.html  |  337 +++
 .../classpulsar_1_1_topic_metadata-members.html    |   94 +
 .../cpp/4.0.x/classpulsar_1_1_topic_metadata.html  |  131 +
 .../classpulsar_1_1_typed_message-members.html     |  128 +
 .../cpp/4.0.x/classpulsar_1_1_typed_message.html   |  166 ++
 .../cpp/4.0.x/classpulsar_1_1_typed_message.png    |  Bin 0 -> 696 bytes
 ...sspulsar_1_1_typed_message_builder-members.html |  117 +
 .../classpulsar_1_1_typed_message_builder.html     |  149 ++
 .../classpulsar_1_1_typed_message_builder.png      |  Bin 0 -> 817 bytes
 ...age_builder_3_01std_1_1string_01_4-members.html |  118 +
 ...ped_message_builder_3_01std_1_1string_01_4.html |  152 ++
 ...yped_message_builder_3_01std_1_1string_01_4.png |  Bin 0 -> 1151 bytes
 .../cpp/4.0.x/client__configuration_8h_source.html |  234 ++
 static/api/cpp/4.0.x/clipboard.js                  |   61 +
 .../4.0.x/consumer__configuration_8h_source.html   |  346 +++
 static/api/cpp/4.0.x/cookie.js                     |   58 +
 static/api/cpp/4.0.x/darkmode_toggle.js            |  228 ++
 static/api/cpp/4.0.x/defines_8h_source.html        |  116 +
 static/api/cpp/4.0.x/deprecated.html               |  100 +
 .../dir_501ae28692a6b25a33adbd2bed71d4b9.html      |  112 +
 .../dir_84093bac216bb6272e4432021f1ca7f4.html      |  143 ++
 .../dir_d44c64559bbebec7f509842c48db8b23.html      |   94 +
 static/api/cpp/4.0.x/doxygen.css                   | 2491 ++++++++++++++++++++
 static/api/cpp/4.0.x/doxygen.svg                   |   28 +
 static/api/cpp/4.0.x/doxygen_crawl.html            |  842 +++++++
 static/api/cpp/4.0.x/dynsections.js                |  191 ++
 static/api/cpp/4.0.x/files.html                    |  157 ++
 static/api/cpp/4.0.x/functions.html                |   93 +
 static/api/cpp/4.0.x/functions_b.html              |   97 +
 static/api/cpp/4.0.x/functions_c.html              |  101 +
 static/api/cpp/4.0.x/functions_d.html              |   91 +
 static/api/cpp/4.0.x/functions_e.html              |   92 +
 static/api/cpp/4.0.x/functions_enum.html           |   86 +
 static/api/cpp/4.0.x/functions_eval.html           |   90 +
 static/api/cpp/4.0.x/functions_f.html              |   92 +
 static/api/cpp/4.0.x/functions_func.html           |   93 +
 static/api/cpp/4.0.x/functions_func_b.html         |   96 +
 static/api/cpp/4.0.x/functions_func_c.html         |  101 +
 static/api/cpp/4.0.x/functions_func_d.html         |   90 +
 static/api/cpp/4.0.x/functions_func_e.html         |   90 +
 static/api/cpp/4.0.x/functions_func_f.html         |   92 +
 static/api/cpp/4.0.x/functions_func_g.html         |  223 ++
 static/api/cpp/4.0.x/functions_func_h.html         |   98 +
 static/api/cpp/4.0.x/functions_func_i.html         |  108 +
 static/api/cpp/4.0.x/functions_func_k.html         |   88 +
 static/api/cpp/4.0.x/functions_func_l.html         |   89 +
 static/api/cpp/4.0.x/functions_func_m.html         |   89 +
 static/api/cpp/4.0.x/functions_func_n.html         |   87 +
 static/api/cpp/4.0.x/functions_func_o.html         |   91 +
 static/api/cpp/4.0.x/functions_func_p.html         |   91 +
 static/api/cpp/4.0.x/functions_func_r.html         |   94 +
 static/api/cpp/4.0.x/functions_func_s.html         |  200 ++
 static/api/cpp/4.0.x/functions_func_t.html         |   87 +
 static/api/cpp/4.0.x/functions_func_u.html         |   89 +
 static/api/cpp/4.0.x/functions_g.html              |  223 ++
 static/api/cpp/4.0.x/functions_h.html              |   98 +
 static/api/cpp/4.0.x/functions_i.html              |  108 +
 static/api/cpp/4.0.x/functions_k.html              |   89 +
 static/api/cpp/4.0.x/functions_l.html              |   89 +
 static/api/cpp/4.0.x/functions_m.html              |   89 +
 static/api/cpp/4.0.x/functions_n.html              |   87 +
 static/api/cpp/4.0.x/functions_o.html              |   91 +
 static/api/cpp/4.0.x/functions_p.html              |   92 +
 static/api/cpp/4.0.x/functions_r.html              |   94 +
 static/api/cpp/4.0.x/functions_s.html              |  201 ++
 static/api/cpp/4.0.x/functions_t.html              |   87 +
 static/api/cpp/4.0.x/functions_u.html              |   89 +
 static/api/cpp/4.0.x/functions_w.html              |   87 +
 static/api/cpp/4.0.x/hierarchy.html                |  145 ++
 static/api/cpp/4.0.x/index.html                    |  167 ++
 static/api/cpp/4.0.x/jquery.js                     |  204 ++
 static/api/cpp/4.0.x/menu.js                       |  131 +
 static/api/cpp/4.0.x/menudata.js                   |  110 +
 static/api/cpp/4.0.x/message__id_8h_source.html    |  118 +
 .../api/cpp/4.0.x/message__router_8h_source.html   |  110 +
 static/api/cpp/4.0.x/messages_8h_source.html       |  111 +
 static/api/cpp/4.0.x/namespacemembers.html         |  216 ++
 static/api/cpp/4.0.x/namespacemembers_enum.html    |   90 +
 static/api/cpp/4.0.x/namespacemembers_eval.html    |  201 ++
 static/api/cpp/4.0.x/namespacemembers_func.html    |   85 +
 static/api/cpp/4.0.x/namespacemembers_type.html    |   88 +
 static/api/cpp/4.0.x/namespacepulsar.html          |  657 ++++++
 static/api/cpp/4.0.x/namespaces.html               |   90 +
 static/api/cpp/4.0.x/navtree.css                   |  327 +++
 static/api/cpp/4.0.x/pages.html                    |   90 +
 .../4.0.x/producer__configuration_8h_source.html   |  306 +++
 .../cpp/4.0.x/reader__configuration_8h_source.html |  153 ++
 static/api/cpp/4.0.x/search/all_0.js               |   23 +
 static/api/cpp/4.0.x/search/all_1.js               |   16 +
 static/api/cpp/4.0.x/search/all_10.js              |   62 +
 static/api/cpp/4.0.x/search/all_11.js              |  122 +
 static/api/cpp/4.0.x/search/all_12.js              |    9 +
 static/api/cpp/4.0.x/search/all_13.js              |    6 +
 static/api/cpp/4.0.x/search/all_14.js              |    4 +
 static/api/cpp/4.0.x/search/all_2.js               |   33 +
 static/api/cpp/4.0.x/search/all_3.js               |   13 +
 static/api/cpp/4.0.x/search/all_4.js               |   10 +
 static/api/cpp/4.0.x/search/all_5.js               |   10 +
 static/api/cpp/4.0.x/search/all_6.js               |  140 ++
 static/api/cpp/4.0.x/search/all_7.js               |   15 +
 static/api/cpp/4.0.x/search/all_8.js               |   30 +
 static/api/cpp/4.0.x/search/all_9.js               |    4 +
 static/api/cpp/4.0.x/search/all_a.js               |   10 +
 static/api/cpp/4.0.x/search/all_b.js               |    9 +
 static/api/cpp/4.0.x/search/all_c.js               |   12 +
 static/api/cpp/4.0.x/search/all_d.js               |    6 +
 static/api/cpp/4.0.x/search/all_e.js               |   10 +
 static/api/cpp/4.0.x/search/all_f.js               |   19 +
 static/api/cpp/4.0.x/search/classes_0.js           |   11 +
 static/api/cpp/4.0.x/search/classes_1.js           |    5 +
 static/api/cpp/4.0.x/search/classes_2.js           |   12 +
 static/api/cpp/4.0.x/search/classes_3.js           |    7 +
 static/api/cpp/4.0.x/search/classes_4.js           |    6 +
 static/api/cpp/4.0.x/search/classes_5.js           |    4 +
 static/api/cpp/4.0.x/search/classes_6.js           |    5 +
 static/api/cpp/4.0.x/search/classes_7.js           |    5 +
 static/api/cpp/4.0.x/search/classes_8.js           |    9 +
 static/api/cpp/4.0.x/search/classes_9.js           |    5 +
 static/api/cpp/4.0.x/search/classes_a.js           |    9 +
 static/api/cpp/4.0.x/search/classes_b.js           |    5 +
 static/api/cpp/4.0.x/search/classes_c.js           |    4 +
 static/api/cpp/4.0.x/search/classes_d.js           |    9 +
 static/api/cpp/4.0.x/search/enums_0.js             |    4 +
 static/api/cpp/4.0.x/search/enums_1.js             |    4 +
 static/api/cpp/4.0.x/search/enums_2.js             |    5 +
 static/api/cpp/4.0.x/search/enums_3.js             |    4 +
 static/api/cpp/4.0.x/search/enums_4.js             |    5 +
 static/api/cpp/4.0.x/search/enums_5.js             |    4 +
 static/api/cpp/4.0.x/search/enumvalues_0.js        |    8 +
 static/api/cpp/4.0.x/search/enumvalues_1.js        |    4 +
 static/api/cpp/4.0.x/search/enumvalues_2.js        |    7 +
 static/api/cpp/4.0.x/search/enumvalues_3.js        |    5 +
 static/api/cpp/4.0.x/search/enumvalues_4.js        |    5 +
 static/api/cpp/4.0.x/search/enumvalues_5.js        |    4 +
 static/api/cpp/4.0.x/search/enumvalues_6.js        |    8 +
 static/api/cpp/4.0.x/search/enumvalues_7.js        |    4 +
 static/api/cpp/4.0.x/search/enumvalues_8.js        |    5 +
 static/api/cpp/4.0.x/search/enumvalues_9.js        |    5 +
 static/api/cpp/4.0.x/search/enumvalues_a.js        |    6 +
 static/api/cpp/4.0.x/search/enumvalues_b.js        |   49 +
 static/api/cpp/4.0.x/search/enumvalues_c.js        |    7 +
 static/api/cpp/4.0.x/search/enumvalues_d.js        |    4 +
 static/api/cpp/4.0.x/search/functions_0.js         |   10 +
 static/api/cpp/4.0.x/search/functions_1.js         |   13 +
 static/api/cpp/4.0.x/search/functions_10.js        |  117 +
 static/api/cpp/4.0.x/search/functions_11.js        |    4 +
 static/api/cpp/4.0.x/search/functions_12.js        |    6 +
 static/api/cpp/4.0.x/search/functions_2.js         |   19 +
 static/api/cpp/4.0.x/search/functions_3.js         |    7 +
 static/api/cpp/4.0.x/search/functions_4.js         |    7 +
 static/api/cpp/4.0.x/search/functions_5.js         |    9 +
 static/api/cpp/4.0.x/search/functions_6.js         |  140 ++
 static/api/cpp/4.0.x/search/functions_7.js         |   15 +
 static/api/cpp/4.0.x/search/functions_8.js         |   25 +
 static/api/cpp/4.0.x/search/functions_9.js         |    5 +
 static/api/cpp/4.0.x/search/functions_a.js         |    6 +
 static/api/cpp/4.0.x/search/functions_b.js         |    6 +
 static/api/cpp/4.0.x/search/functions_c.js         |    4 +
 static/api/cpp/4.0.x/search/functions_d.js         |    8 +
 static/api/cpp/4.0.x/search/functions_e.js         |    8 +
 static/api/cpp/4.0.x/search/functions_f.js         |   11 +
 static/api/cpp/4.0.x/search/namespaces_0.js        |    4 +
 static/api/cpp/4.0.x/search/pages_0.js             |    5 +
 static/api/cpp/4.0.x/search/pages_1.js             |    4 +
 static/api/cpp/4.0.x/search/pages_2.js             |    4 +
 static/api/cpp/4.0.x/search/pages_3.js             |    4 +
 static/api/cpp/4.0.x/search/search.css             |  378 +++
 static/api/cpp/4.0.x/search/search.js              |  708 ++++++
 static/api/cpp/4.0.x/search/searchdata.js          |   36 +
 static/api/cpp/4.0.x/search/typedefs_0.js          |    5 +
 static/api/cpp/4.0.x/search/typedefs_1.js          |    5 +
 static/api/cpp/4.0.x/string__list_8h_source.html   |  113 +
 static/api/cpp/4.0.x/string__map_8h_source.html    |  116 +
 .../structpulsar_1_1_encryption_key-members.html   |   96 +
 .../cpp/4.0.x/structpulsar_1_1_encryption_key.html |  111 +
 ...ulsar_1_1_table_view_configuration-members.html |   94 +
 .../structpulsar_1_1_table_view_configuration.html |  103 +
 ...onsumer__batch__receive__policy__t-members.html |   91 +
 ...ulsar__consumer__batch__receive__policy__t.html |  101 +
 ...r__config__dead__letter__policy__t-members.html |   91 +
 ..._consumer__config__dead__letter__policy__t.html |  101 +
 .../cpp/4.0.x/structpulsar__logger__t-members.html |   91 +
 static/api/cpp/4.0.x/structpulsar__logger__t.html  |  101 +
 static/api/cpp/4.0.x/table__view_8h_source.html    |  134 ++
 .../table__view__configuration_8h_source.html      |  120 +
 static/api/cpp/4.0.x/tabs.css                      |    1 +
 static/api/cpp/4.0.x/version_8h_source.html        |   94 +
 344 files changed, 49751 insertions(+)

diff --git a/static/api/cpp/4.0.x/_authentication_8h_source.html b/static/api/cpp/4.0.x/_authentication_8h_source.html
new file mode 100644
index 00000000000..4756fcdaa3a
--- /dev/null
+++ b/static/api/cpp/4.0.x/_authentication_8h_source.html
@@ -0,0 +1,425 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_AUTHENTICATION_H_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_AUTHENTICATION_H_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;map&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="foldopen" id="foldopen00031" data-start="{" data-end="}">
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="namespacepulsar.html">   31</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keyword">class </span><a class="code hl_class" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="keyword">class </span><a class="code hl_class" href="classpulsar_1_1_authentication.html">Authentication</a>;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="foldopen" id="foldopen00036" data-start="{" data-end="};">
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication_data_provider.html">   36</a></span><span class="keyword">class </span>PULSAR_PUBLIC AuthenticationDataProvider {</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>    <span class="keyword">virtual</span> ~AuthenticationDataProvider();</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication_data_provider.html#af500b208a36e4849bd9ee1f6c48eb60e">   43</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_authentication_data_provider.html#af500b208a36e4849bd9ee1f6c48eb60e">hasDataForTls</a>();</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication_data_provider.html#af2694d6a80dfe8af67c16ef45f3e9645">   48</a></span>    <span class="keyword">virtual</span> std::string <a class="code hl_function" href="classpulsar_1_1_authentication_data_provider.html#af2694d6a80dfe8af67c16ef45f3e9645">getTlsCertificates</a>();</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span></div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication_data_provider.html#a8a86f5d276fafcc7f35bc49a365be9f8">   53</a></span>    <span class="keyword">virtual</span> std::string <a class="code hl_function" href="classpulsar_1_1_authentication_data_provider.html#a8a86f5d276fafcc7f35bc49a365be9f8">getTlsPrivateKey</a>();</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span></div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication_data_provider.html#afbe3f1d0356a5d362bffc7f8253bf631">   58</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_authentication_data_provider.html#afbe3f1d0356a5d362bffc7f8253bf631">hasDataForHttp</a>();</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span></div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication_data_provider.html#ab201bbb1a90f3d4ca580bec9021d9d53">   63</a></span>    <span class="keyword">virtual</span> std::string <a class="code hl_function" href="classpulsar_1_1_authentication_data_provider.html#ab201bbb1a90f3d4ca580bec9021d9d53">getHttpAuthType</a>();</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span></div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication_data_provider.html#a90657a3943e3baed5dc5d469e8c64d2a">   68</a></span>    <span class="keyword">virtual</span> std::string <a class="code hl_function" href="classpulsar_1_1_authentication_data_provider.html#a90657a3943e3baed5dc5d469e8c64d2a">getHttpHeaders</a>();</div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span></div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication_data_provider.html#a1ad6773dcb324d73d6fe6aaa01927e67">   73</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_authentication_data_provider.html#a1ad6773dcb324d73d6fe6aaa01927e67">hasDataFromCommand</a>();</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span></div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication_data_provider.html#a1ea19f94ab4b5479022a1df0f566668d">   78</a></span>    <span class="keyword">virtual</span> std::string <a class="code hl_function" href="classpulsar_1_1_authentication_data_provider.html#a1ea19f94ab4b5479022a1df0f566668d">getCommandData</a>();</div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span> </div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span>   <span class="keyword">protected</span>:</div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span>    AuthenticationDataProvider();</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span>};</div>
+</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span><span class="keyword">typedef</span> std::shared_ptr&lt;AuthenticationDataProvider&gt; AuthenticationDataPtr;</div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span><span class="keyword">typedef</span> std::shared_ptr&lt;Authentication&gt; AuthenticationPtr;</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span><span class="keyword">typedef</span> std::map&lt;std::string, std::string&gt; ParamMap;</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span> </div>
+<div class="foldopen" id="foldopen00088" data-start="{" data-end="};">
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication.html">   88</a></span><span class="keyword">class </span>PULSAR_PUBLIC Authentication {</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>    <span class="keyword">virtual</span> ~Authentication();</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span></div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication.html#aafe5c68d220ae0926a2c66953eafed57">   95</a></span>    <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code hl_function" href="classpulsar_1_1_authentication.html#aafe5c68d220ae0926a2c66953eafed57">getAuthMethodName</a>() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span></div>
+<div class="foldopen" id="foldopen00104" data-start="{" data-end="}">
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688">  104</a></span>    <span class="keyword">virtual</span> <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688">getAuthData</a>(AuthenticationDataPtr&amp; authDataContent) {</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span>        authDataContent = authData_;</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>        <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a0aac5dae08c453e94161e28d7cd5a92f">ResultOk</a>;</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span>    }</div>
+</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span></div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">  120</a></span>    <span class="keyword">static</span> ParamMap <a class="code hl_function" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a>(<span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span> </div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span>   <span class="keyword">protected</span>:</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span>    Authentication();</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span>    AuthenticationDataPtr authData_;</div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ClientConfiguration;</div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span>};</div>
+</div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span></div>
+<div class="foldopen" id="foldopen00136" data-start="{" data-end="};">
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_factory.html">  136</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_class" href="classpulsar_1_1_auth_factory.html">AuthFactory</a> {</div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno">  137</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno">  138</span>    <span class="keyword">static</span> AuthenticationPtr Disabled();</div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span></div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_factory.html#a551395eda623d3454c758c3479423ce3">  145</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_factory.html#a551395eda623d3454c758c3479423ce3">create</a>(<span class="keyword">const</span> std::string&amp; pluginNameOrDynamicLibPath);</div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span></div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_factory.html#af84e99a6be262145d928e599946ab82d">  153</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_factory.html#af84e99a6be262145d928e599946ab82d">create</a>(<span class="keyword">const</span> std::string&amp; pluginNameOrDynamicLibPath,</div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span>                                    <span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span></div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_factory.html#a644b858e4a59482ecce5d1782bd4b452">  172</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_factory.html#a644b858e4a59482ecce5d1782bd4b452">create</a>(<span class="keyword">const</span> std::string&amp; pluginNameOrDynamicLibPath, ParamMap&amp; params);</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span>   <span class="keyword">protected</span>:</div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span>    <span class="keyword">static</span> <span class="keywordtype">bool</span> isShutdownHookRegistered_;</div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span>    <span class="keyword">static</span> std::vector&lt;void*&gt; loadedLibrariesHandles_;</div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span>    <span class="keyword">static</span> <span class="keywordtype">void</span> release_handles();</div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span>};</div>
+</div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span></div>
+<div class="foldopen" id="foldopen00183" data-start="{" data-end="};">
+<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_tls.html">  183</a></span><span class="keyword">class </span>PULSAR_PUBLIC AuthTls : <span class="keyword">public</span> Authentication {</div>
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno">  185</span>    AuthTls(AuthenticationDataPtr&amp;);</div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span>    ~AuthTls();</div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span></div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_tls.html#a3a2603a8be94cdde4845c941dc8871cc">  194</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_tls.html#a3a2603a8be94cdde4845c941dc8871cc">create</a>(ParamMap&amp; params);</div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span></div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_tls.html#a19312c7b58d94aa05927ee33922731de">  201</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_tls.html#a19312c7b58d94aa05927ee33922731de">create</a>(<span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span></div>
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_tls.html#ac32274cb7d7095cfcd35fcebcf277d5b">  209</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_tls.html#ac32274cb7d7095cfcd35fcebcf277d5b">create</a>(<span class="keyword">const</span> std::string&amp; certificatePath, <span class="keyword">const</span> std::string&amp; privateKeyPath);</div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno">  210</span></div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_tls.html#a2c87f86950aa979f666896e7a5f79398">  214</a></span>    <span class="keyword">const</span> std::string <a class="code hl_function" href="classpulsar_1_1_auth_tls.html#a2c87f86950aa979f666896e7a5f79398">getAuthMethodName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span></div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_tls.html#ae88d06f62a47e92e7c52e74df3cacb56">  223</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_auth_tls.html#ae88d06f62a47e92e7c52e74df3cacb56">getAuthData</a>(AuthenticationDataPtr&amp; authDataTls);</div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span> </div>
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno">  225</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span>    AuthenticationDataPtr authDataTls_;</div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span>};</div>
+</div>
+<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span> </div>
+<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span><span class="keyword">typedef</span> std::function&lt;std::string()&gt; TokenSupplier;</div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno">  230</span></div>
+<div class="foldopen" id="foldopen00234" data-start="{" data-end="};">
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_token.html">  234</a></span><span class="keyword">class </span>PULSAR_PUBLIC AuthToken : <span class="keyword">public</span> Authentication {</div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno">  235</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span>    AuthToken(AuthenticationDataPtr&amp;);</div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno">  237</span>    ~AuthToken();</div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno">  238</span></div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_token.html#aa4d3740c838620765a7332bf2247b5e9">  254</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_token.html#aa4d3740c838620765a7332bf2247b5e9">create</a>(ParamMap&amp; params);</div>
+<div class="line"><a id="l00255" name="l00255"></a><span class="lineno">  255</span></div>
+<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_token.html#a9601a01bd5b7b644531d82fc3cfa7d09">  261</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_token.html#a9601a01bd5b7b644531d82fc3cfa7d09">create</a>(<span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a id="l00262" name="l00262"></a><span class="lineno">  262</span></div>
+<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_token.html#a80911f1374df425fdb76f066dfe7ebd9">  269</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_token.html#a80911f1374df425fdb76f066dfe7ebd9">createWithToken</a>(<span class="keyword">const</span> std::string&amp; token);</div>
+<div class="line"><a id="l00270" name="l00270"></a><span class="lineno">  270</span></div>
+<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_token.html#ae9b2da50ad0c22335b298d939239602c">  277</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_token.html#ae9b2da50ad0c22335b298d939239602c">create</a>(<span class="keyword">const</span> TokenSupplier&amp; tokenSupplier);</div>
+<div class="line"><a id="l00278" name="l00278"></a><span class="lineno">  278</span></div>
+<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_token.html#a0d1bf202c18b9131be315b166b4b1caa">  282</a></span>    <span class="keyword">const</span> std::string <a class="code hl_function" href="classpulsar_1_1_auth_token.html#a0d1bf202c18b9131be315b166b4b1caa">getAuthMethodName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00283" name="l00283"></a><span class="lineno">  283</span></div>
+<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_token.html#a212a8af7680f196e4fba4e0152e6d0a5">  291</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_auth_token.html#a212a8af7680f196e4fba4e0152e6d0a5">getAuthData</a>(AuthenticationDataPtr&amp; authDataToken);</div>
+<div class="line"><a id="l00292" name="l00292"></a><span class="lineno">  292</span> </div>
+<div class="line"><a id="l00293" name="l00293"></a><span class="lineno">  293</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00294" name="l00294"></a><span class="lineno">  294</span>    AuthenticationDataPtr authDataToken_;</div>
+<div class="line"><a id="l00295" name="l00295"></a><span class="lineno">  295</span>};</div>
+</div>
+<div class="line"><a id="l00296" name="l00296"></a><span class="lineno">  296</span></div>
+<div class="foldopen" id="foldopen00300" data-start="{" data-end="};">
+<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_basic.html">  300</a></span><span class="keyword">class </span>PULSAR_PUBLIC AuthBasic : <span class="keyword">public</span> Authentication {</div>
+<div class="line"><a id="l00301" name="l00301"></a><span class="lineno">  301</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00302" name="l00302"></a><span class="lineno">  302</span>    <span class="keyword">explicit</span> AuthBasic(AuthenticationDataPtr&amp;);</div>
+<div class="line"><a id="l00303" name="l00303"></a><span class="lineno">  303</span>    ~AuthBasic() <span class="keyword">override</span>;</div>
+<div class="line"><a id="l00304" name="l00304"></a><span class="lineno">  304</span></div>
+<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_basic.html#aee17b2ca84965dfe8b3d9296dd397400">  311</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_basic.html#aee17b2ca84965dfe8b3d9296dd397400">create</a>(ParamMap&amp; params);</div>
+<div class="line"><a id="l00312" name="l00312"></a><span class="lineno">  312</span></div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_basic.html#ac9f7f369e4559f0aa108708355dcaaec">  318</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_basic.html#ac9f7f369e4559f0aa108708355dcaaec">create</a>(<span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span></div>
+<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_basic.html#a86ce78ef0606d5642f110dc4ec8c6f67">  323</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_basic.html#a86ce78ef0606d5642f110dc4ec8c6f67">create</a>(<span class="keyword">const</span> std::string&amp; username, <span class="keyword">const</span> std::string&amp; password);</div>
+<div class="line"><a id="l00324" name="l00324"></a><span class="lineno">  324</span></div>
+<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_basic.html#ac85c75b0d48375423cbb5c1421529c46">  328</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_basic.html#ac85c75b0d48375423cbb5c1421529c46">create</a>(<span class="keyword">const</span> std::string&amp; username, <span class="keyword">const</span> std::string&amp; password,</div>
+<div class="line"><a id="l00329" name="l00329"></a><span class="lineno">  329</span>                                    <span class="keyword">const</span> std::string&amp; method);</div>
+<div class="line"><a id="l00330" name="l00330"></a><span class="lineno">  330</span></div>
+<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_basic.html#ad9d2d1d47a1f1d82fee3522ea5991c3b">  334</a></span>    <span class="keyword">const</span> std::string <a class="code hl_function" href="classpulsar_1_1_auth_basic.html#ad9d2d1d47a1f1d82fee3522ea5991c3b">getAuthMethodName</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a id="l00335" name="l00335"></a><span class="lineno">  335</span></div>
+<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_basic.html#a7b1ccda07ff0a22a705159e27149f3d4">  343</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_auth_basic.html#a7b1ccda07ff0a22a705159e27149f3d4">getAuthData</a>(AuthenticationDataPtr&amp; authDataBasic) <span class="keyword">override</span>;</div>
+<div class="line"><a id="l00344" name="l00344"></a><span class="lineno">  344</span> </div>
+<div class="line"><a id="l00345" name="l00345"></a><span class="lineno">  345</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00346" name="l00346"></a><span class="lineno">  346</span>    AuthenticationDataPtr authDataBasic_;</div>
+<div class="line"><a id="l00347" name="l00347"></a><span class="lineno">  347</span>};</div>
+</div>
+<div class="line"><a id="l00348" name="l00348"></a><span class="lineno">  348</span></div>
+<div class="foldopen" id="foldopen00352" data-start="{" data-end="};">
+<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_athenz.html">  352</a></span><span class="keyword">class </span>PULSAR_PUBLIC AuthAthenz : <span class="keyword">public</span> Authentication {</div>
+<div class="line"><a id="l00353" name="l00353"></a><span class="lineno">  353</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00354" name="l00354"></a><span class="lineno">  354</span>    AuthAthenz(AuthenticationDataPtr&amp;);</div>
+<div class="line"><a id="l00355" name="l00355"></a><span class="lineno">  355</span>    ~AuthAthenz();</div>
+<div class="line"><a id="l00356" name="l00356"></a><span class="lineno">  356</span></div>
+<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_athenz.html#acde69fc41668a27d12d558023aaed0d9">  366</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_athenz.html#acde69fc41668a27d12d558023aaed0d9">create</a>(ParamMap&amp; params);</div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno">  367</span></div>
+<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_athenz.html#afd40a525e1d8d61fc97880c2c8a958fe">  373</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_athenz.html#afd40a525e1d8d61fc97880c2c8a958fe">create</a>(<span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a id="l00374" name="l00374"></a><span class="lineno">  374</span></div>
+<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_athenz.html#a65405a1cfd2ec3efcaeea3ed8269fa47">  378</a></span>    <span class="keyword">const</span> std::string <a class="code hl_function" href="classpulsar_1_1_auth_athenz.html#a65405a1cfd2ec3efcaeea3ed8269fa47">getAuthMethodName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00379" name="l00379"></a><span class="lineno">  379</span></div>
+<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_athenz.html#a274c9e677c536166fd1d4f8af6161546">  387</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_auth_athenz.html#a274c9e677c536166fd1d4f8af6161546">getAuthData</a>(AuthenticationDataPtr&amp; authDataAthenz);</div>
+<div class="line"><a id="l00388" name="l00388"></a><span class="lineno">  388</span> </div>
+<div class="line"><a id="l00389" name="l00389"></a><span class="lineno">  389</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00390" name="l00390"></a><span class="lineno">  390</span>    AuthenticationDataPtr authDataAthenz_;</div>
+<div class="line"><a id="l00391" name="l00391"></a><span class="lineno">  391</span>};</div>
+</div>
+<div class="line"><a id="l00392" name="l00392"></a><span class="lineno">  392</span> </div>
+<div class="line"><a id="l00393" name="l00393"></a><span class="lineno">  393</span><span class="comment">// OAuth 2.0 token and associated information.</span></div>
+<div class="line"><a id="l00394" name="l00394"></a><span class="lineno">  394</span><span class="comment">// currently mainly works for access token</span></div>
+<div class="foldopen" id="foldopen00395" data-start="{" data-end="};">
+<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_token_result.html">  395</a></span><span class="keyword">class </span>Oauth2TokenResult {</div>
+<div class="line"><a id="l00396" name="l00396"></a><span class="lineno">  396</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00397" name="l00397"></a><span class="lineno">  397</span>    <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> undefined_expiration = -1;</div>
+<div class="line"><a id="l00398" name="l00398"></a><span class="lineno">  398</span> </div>
+<div class="line"><a id="l00399" name="l00399"></a><span class="lineno">  399</span>    Oauth2TokenResult();</div>
+<div class="line"><a id="l00400" name="l00400"></a><span class="lineno">  400</span>    ~Oauth2TokenResult();</div>
+<div class="line"><a id="l00401" name="l00401"></a><span class="lineno">  401</span></div>
+<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_token_result.html#af592ce6cc7e7633da3c03cfaa9f0876f">  407</a></span>    Oauth2TokenResult&amp; <a class="code hl_function" href="classpulsar_1_1_oauth2_token_result.html#af592ce6cc7e7633da3c03cfaa9f0876f">setAccessToken</a>(<span class="keyword">const</span> std::string&amp; accessToken);</div>
+<div class="line"><a id="l00408" name="l00408"></a><span class="lineno">  408</span></div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_token_result.html#a9cdc37fbe7d61486affda02a753ff1dc">  414</a></span>    Oauth2TokenResult&amp; <a class="code hl_function" href="classpulsar_1_1_oauth2_token_result.html#a9cdc37fbe7d61486affda02a753ff1dc">setIdToken</a>(<span class="keyword">const</span> std::string&amp; idToken);</div>
+<div class="line"><a id="l00415" name="l00415"></a><span class="lineno">  415</span></div>
+<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_token_result.html#a87d8e7e923d1ca96d5c0425cf80d5d42">  422</a></span>    Oauth2TokenResult&amp; <a class="code hl_function" href="classpulsar_1_1_oauth2_token_result.html#a87d8e7e923d1ca96d5c0425cf80d5d42">setRefreshToken</a>(<span class="keyword">const</span> std::string&amp; refreshToken);</div>
+<div class="line"><a id="l00423" name="l00423"></a><span class="lineno">  423</span></div>
+<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_token_result.html#aa27ab0a802260bbf7142e03fd6c8bb46">  429</a></span>    Oauth2TokenResult&amp; <a class="code hl_function" href="classpulsar_1_1_oauth2_token_result.html#aa27ab0a802260bbf7142e03fd6c8bb46">setExpiresIn</a>(<span class="keyword">const</span> int64_t expiresIn);</div>
+<div class="line"><a id="l00430" name="l00430"></a><span class="lineno">  430</span></div>
+<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_token_result.html#a41359aec5371cbcea46cad38e02e28b4">  434</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_oauth2_token_result.html#a41359aec5371cbcea46cad38e02e28b4">getAccessToken</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00435" name="l00435"></a><span class="lineno">  435</span></div>
+<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_token_result.html#ad04cbc8f2c1980d7603b13bdac2359e7">  439</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_oauth2_token_result.html#ad04cbc8f2c1980d7603b13bdac2359e7">getIdToken</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00440" name="l00440"></a><span class="lineno">  440</span></div>
+<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_token_result.html#ab3f6c44eaa2f4eed65e98fdfa2e3cd95">  445</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_oauth2_token_result.html#ab3f6c44eaa2f4eed65e98fdfa2e3cd95">getRefreshToken</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00446" name="l00446"></a><span class="lineno">  446</span></div>
+<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_token_result.html#a3fe9ca08aada6022f2977051420eea77">  450</a></span>    int64_t <a class="code hl_function" href="classpulsar_1_1_oauth2_token_result.html#a3fe9ca08aada6022f2977051420eea77">getExpiresIn</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00451" name="l00451"></a><span class="lineno">  451</span> </div>
+<div class="line"><a id="l00452" name="l00452"></a><span class="lineno">  452</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00453" name="l00453"></a><span class="lineno">  453</span>    <span class="comment">// map to json &quot;access_token&quot;</span></div>
+<div class="line"><a id="l00454" name="l00454"></a><span class="lineno">  454</span>    std::string accessToken_;</div>
+<div class="line"><a id="l00455" name="l00455"></a><span class="lineno">  455</span>    <span class="comment">// map to json &quot;id_token&quot;</span></div>
+<div class="line"><a id="l00456" name="l00456"></a><span class="lineno">  456</span>    std::string idToken_;</div>
+<div class="line"><a id="l00457" name="l00457"></a><span class="lineno">  457</span>    <span class="comment">// map to json &quot;refresh_token&quot;</span></div>
+<div class="line"><a id="l00458" name="l00458"></a><span class="lineno">  458</span>    std::string refreshToken_;</div>
+<div class="line"><a id="l00459" name="l00459"></a><span class="lineno">  459</span>    <span class="comment">// map to json &quot;expires_in&quot;</span></div>
+<div class="line"><a id="l00460" name="l00460"></a><span class="lineno">  460</span>    int64_t expiresIn_;</div>
+<div class="line"><a id="l00461" name="l00461"></a><span class="lineno">  461</span>};</div>
+</div>
+<div class="line"><a id="l00462" name="l00462"></a><span class="lineno">  462</span> </div>
+<div class="line"><a id="l00463" name="l00463"></a><span class="lineno">  463</span><span class="keyword">typedef</span> std::shared_ptr&lt;Oauth2TokenResult&gt; Oauth2TokenResultPtr;</div>
+<div class="line"><a id="l00464" name="l00464"></a><span class="lineno">  464</span> </div>
+<div class="foldopen" id="foldopen00465" data-start="{" data-end="};">
+<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_flow.html">  465</a></span><span class="keyword">class </span>Oauth2Flow {</div>
+<div class="line"><a id="l00466" name="l00466"></a><span class="lineno">  466</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00467" name="l00467"></a><span class="lineno">  467</span>    <span class="keyword">virtual</span> ~Oauth2Flow();</div>
+<div class="line"><a id="l00468" name="l00468"></a><span class="lineno">  468</span></div>
+<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_flow.html#a2d9a138289565a4e07aded8fffdcb96e">  472</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_oauth2_flow.html#a2d9a138289565a4e07aded8fffdcb96e">initialize</a>() = 0;</div>
+<div class="line"><a id="l00473" name="l00473"></a><span class="lineno">  473</span></div>
+<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_flow.html#a26ba112e97d9ce0283adaa9213f848ac">  478</a></span>    <span class="keyword">virtual</span> Oauth2TokenResultPtr <a class="code hl_function" href="classpulsar_1_1_oauth2_flow.html#a26ba112e97d9ce0283adaa9213f848ac">authenticate</a>() = 0;</div>
+<div class="line"><a id="l00479" name="l00479"></a><span class="lineno">  479</span></div>
+<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_flow.html#ae4815e1adf8cced8553f9e3d6d6717a8">  483</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_oauth2_flow.html#ae4815e1adf8cced8553f9e3d6d6717a8">close</a>() = 0;</div>
+<div class="line"><a id="l00484" name="l00484"></a><span class="lineno">  484</span> </div>
+<div class="line"><a id="l00485" name="l00485"></a><span class="lineno">  485</span>   <span class="keyword">protected</span>:</div>
+<div class="line"><a id="l00486" name="l00486"></a><span class="lineno">  486</span>    Oauth2Flow();</div>
+<div class="line"><a id="l00487" name="l00487"></a><span class="lineno">  487</span>};</div>
+</div>
+<div class="line"><a id="l00488" name="l00488"></a><span class="lineno">  488</span> </div>
+<div class="line"><a id="l00489" name="l00489"></a><span class="lineno">  489</span><span class="keyword">typedef</span> std::shared_ptr&lt;Oauth2Flow&gt; FlowPtr;</div>
+<div class="line"><a id="l00490" name="l00490"></a><span class="lineno">  490</span> </div>
+<div class="foldopen" id="foldopen00491" data-start="{" data-end="};">
+<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"><a class="line" href="classpulsar_1_1_cached_token.html">  491</a></span><span class="keyword">class </span>CachedToken {</div>
+<div class="line"><a id="l00492" name="l00492"></a><span class="lineno">  492</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00493" name="l00493"></a><span class="lineno">  493</span>    <span class="keyword">virtual</span> ~CachedToken();</div>
+<div class="line"><a id="l00494" name="l00494"></a><span class="lineno">  494</span></div>
+<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"><a class="line" href="classpulsar_1_1_cached_token.html#a2fe69f2fb7037139b52f9c66a0af05f2">  498</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_cached_token.html#a2fe69f2fb7037139b52f9c66a0af05f2">isExpired</a>() = 0;</div>
+<div class="line"><a id="l00499" name="l00499"></a><span class="lineno">  499</span></div>
+<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"><a class="line" href="classpulsar_1_1_cached_token.html#a6e249f44ae21288c7365d1baece3da5d">  505</a></span>    <span class="keyword">virtual</span> AuthenticationDataPtr <a class="code hl_function" href="classpulsar_1_1_cached_token.html#a6e249f44ae21288c7365d1baece3da5d">getAuthData</a>() = 0;</div>
+<div class="line"><a id="l00506" name="l00506"></a><span class="lineno">  506</span> </div>
+<div class="line"><a id="l00507" name="l00507"></a><span class="lineno">  507</span>   <span class="keyword">protected</span>:</div>
+<div class="line"><a id="l00508" name="l00508"></a><span class="lineno">  508</span>    CachedToken();</div>
+<div class="line"><a id="l00509" name="l00509"></a><span class="lineno">  509</span>};</div>
+</div>
+<div class="line"><a id="l00510" name="l00510"></a><span class="lineno">  510</span> </div>
+<div class="line"><a id="l00511" name="l00511"></a><span class="lineno">  511</span><span class="keyword">typedef</span> std::shared_ptr&lt;CachedToken&gt; CachedTokenPtr;</div>
+<div class="line"><a id="l00512" name="l00512"></a><span class="lineno">  512</span></div>
+<div class="foldopen" id="foldopen00525" data-start="{" data-end="};">
+<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_oauth2.html">  525</a></span><span class="keyword">class </span>PULSAR_PUBLIC AuthOauth2 : <span class="keyword">public</span> Authentication {</div>
+<div class="line"><a id="l00526" name="l00526"></a><span class="lineno">  526</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00527" name="l00527"></a><span class="lineno">  527</span>    AuthOauth2(ParamMap&amp; params);</div>
+<div class="line"><a id="l00528" name="l00528"></a><span class="lineno">  528</span>    ~AuthOauth2();</div>
+<div class="line"><a id="l00529" name="l00529"></a><span class="lineno">  529</span></div>
+<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_oauth2.html#a7bb0d842b22b59036587b22da2447377">  538</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_oauth2.html#a7bb0d842b22b59036587b22da2447377">create</a>(ParamMap&amp; params);</div>
+<div class="line"><a id="l00539" name="l00539"></a><span class="lineno">  539</span></div>
+<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_oauth2.html#aca6ec2237b43187d8001a5b79a2f11e4">  545</a></span>    <span class="keyword">static</span> AuthenticationPtr <a class="code hl_function" href="classpulsar_1_1_auth_oauth2.html#aca6ec2237b43187d8001a5b79a2f11e4">create</a>(<span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a id="l00546" name="l00546"></a><span class="lineno">  546</span></div>
+<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_oauth2.html#ac71578130863f59cb02fe1aefa9d70f6">  550</a></span>    <span class="keyword">const</span> std::string <a class="code hl_function" href="classpulsar_1_1_auth_oauth2.html#ac71578130863f59cb02fe1aefa9d70f6">getAuthMethodName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00551" name="l00551"></a><span class="lineno">  551</span></div>
+<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_oauth2.html#adcf1f8cac446270ee6aa0a0ad156842e">  559</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_auth_oauth2.html#adcf1f8cac446270ee6aa0a0ad156842e">getAuthData</a>(AuthenticationDataPtr&amp; authDataOauth2);</div>
+<div class="line"><a id="l00560" name="l00560"></a><span class="lineno">  560</span> </div>
+<div class="line"><a id="l00561" name="l00561"></a><span class="lineno">  561</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00562" name="l00562"></a><span class="lineno">  562</span>    FlowPtr flowPtr_;</div>
+<div class="line"><a id="l00563" name="l00563"></a><span class="lineno">  563</span>    CachedTokenPtr cachedTokenPtr_;</div>
+<div class="line"><a id="l00564" name="l00564"></a><span class="lineno">  564</span>};</div>
+</div>
+<div class="line"><a id="l00565" name="l00565"></a><span class="lineno">  565</span> </div>
+<div class="line"><a id="l00566" name="l00566"></a><span class="lineno">  566</span>}  <span class="comment">// namespace pulsar</span></div>
+</div>
+<div class="line"><a id="l00567" name="l00567"></a><span class="lineno">  567</span> </div>
+<div class="line"><a id="l00568" name="l00568"></a><span class="lineno">  568</span><span class="preprocessor">#endif </span><span class="comment">/* PULSAR_AUTHENTICATION_H_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_athenz_html_a274c9e677c536166fd1d4f8af6161546"><div class="ttname"><a href="classpulsar_1_1_auth_athenz.html#a274c9e677c536166fd1d4f8af6161546">pulsar::AuthAthenz::getAuthData</a></div><div class="ttdeci">Result getAuthData(AuthenticationDataPtr &amp;authDataAthenz)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_athenz_html_a65405a1cfd2ec3efcaeea3ed8269fa47"><div class="ttname"><a href="classpulsar_1_1_auth_athenz.html#a65405a1cfd2ec3efcaeea3ed8269fa47">pulsar::AuthAthenz::getAuthMethodName</a></div><div class="ttdeci">const std::string getAuthMethodName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_athenz_html_acde69fc41668a27d12d558023aaed0d9"><div class="ttname"><a href="classpulsar_1_1_auth_athenz.html#acde69fc41668a27d12d558023aaed0d9">pulsar::AuthAthenz::create</a></div><div class="ttdeci">static AuthenticationPtr create(ParamMap &amp;params)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_athenz_html_afd40a525e1d8d61fc97880c2c8a958fe"><div class="ttname"><a href="classpulsar_1_1_auth_athenz.html#afd40a525e1d8d61fc97880c2c8a958fe">pulsar::AuthAthenz::create</a></div><div class="ttdeci">static AuthenticationPtr create(const std::string &amp;authParamsString)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_basic_html_a7b1ccda07ff0a22a705159e27149f3d4"><div class="ttname"><a href="classpulsar_1_1_auth_basic.html#a7b1ccda07ff0a22a705159e27149f3d4">pulsar::AuthBasic::getAuthData</a></div><div class="ttdeci">Result getAuthData(AuthenticationDataPtr &amp;authDataBasic) override</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_basic_html_a86ce78ef0606d5642f110dc4ec8c6f67"><div class="ttname"><a href="classpulsar_1_1_auth_basic.html#a86ce78ef0606d5642f110dc4ec8c6f67">pulsar::AuthBasic::create</a></div><div class="ttdeci">static AuthenticationPtr create(const std::string &amp;username, const std::string &amp;password)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_basic_html_ac85c75b0d48375423cbb5c1421529c46"><div class="ttname"><a href="classpulsar_1_1_auth_basic.html#ac85c75b0d48375423cbb5c1421529c46">pulsar::AuthBasic::create</a></div><div class="ttdeci">static AuthenticationPtr create(const std::string &amp;username, const std::string &amp;password, const std::string &amp;method)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_basic_html_ac9f7f369e4559f0aa108708355dcaaec"><div class="ttname"><a href="classpulsar_1_1_auth_basic.html#ac9f7f369e4559f0aa108708355dcaaec">pulsar::AuthBasic::create</a></div><div class="ttdeci">static AuthenticationPtr create(const std::string &amp;authParamsString)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_basic_html_ad9d2d1d47a1f1d82fee3522ea5991c3b"><div class="ttname"><a href="classpulsar_1_1_auth_basic.html#ad9d2d1d47a1f1d82fee3522ea5991c3b">pulsar::AuthBasic::getAuthMethodName</a></div><div class="ttdeci">const std::string getAuthMethodName() const override</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_basic_html_aee17b2ca84965dfe8b3d9296dd397400"><div class="ttname"><a href="classpulsar_1_1_auth_basic.html#aee17b2ca84965dfe8b3d9296dd397400">pulsar::AuthBasic::create</a></div><div class="ttdeci">static AuthenticationPtr create(ParamMap &amp;params)</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_auth_factory_html_a551395eda623d3454c758c3479423ce3"><div class="ttname"><a href="classpulsar_1_1_auth_factory.html#a551395eda623d3454c758c3479423ce3">pulsar::AuthFactory::create</a></div><div class="ttdeci">static AuthenticationPtr create(const std::string &amp;pluginNameOrDynamicLibPath)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_factory_html_a644b858e4a59482ecce5d1782bd4b452"><div class="ttname"><a href="classpulsar_1_1_auth_factory.html#a644b858e4a59482ecce5d1782bd4b452">pulsar::AuthFactory::create</a></div><div class="ttdeci">static AuthenticationPtr create(const std::string &amp;pluginNameOrDynamicLibPath, ParamMap &amp;params)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_factory_html_af84e99a6be262145d928e599946ab82d"><div class="ttname"><a href="classpulsar_1_1_auth_factory.html#af84e99a6be262145d928e599946ab82d">pulsar::AuthFactory::create</a></div><div class="ttdeci">static AuthenticationPtr create(const std::string &amp;pluginNameOrDynamicLibPath, const std::string &amp;authParamsString)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_oauth2_html_a7bb0d842b22b59036587b22da2447377"><div class="ttname"><a href="classpulsar_1_1_auth_oauth2.html#a7bb0d842b22b59036587b22da2447377">pulsar::AuthOauth2::create</a></div><div class="ttdeci">static AuthenticationPtr create(ParamMap &amp;params)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_oauth2_html_ac71578130863f59cb02fe1aefa9d70f6"><div class="ttname"><a href="classpulsar_1_1_auth_oauth2.html#ac71578130863f59cb02fe1aefa9d70f6">pulsar::AuthOauth2::getAuthMethodName</a></div><div class="ttdeci">const std::string getAuthMethodName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_oauth2_html_aca6ec2237b43187d8001a5b79a2f11e4"><div class="ttname"><a href="classpulsar_1_1_auth_oauth2.html#aca6ec2237b43187d8001a5b79a2f11e4">pulsar::AuthOauth2::create</a></div><div class="ttdeci">static AuthenticationPtr create(const std::string &amp;authParamsString)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_oauth2_html_adcf1f8cac446270ee6aa0a0ad156842e"><div class="ttname"><a href="classpulsar_1_1_auth_oauth2.html#adcf1f8cac446270ee6aa0a0ad156842e">pulsar::AuthOauth2::getAuthData</a></div><div class="ttdeci">Result getAuthData(AuthenticationDataPtr &amp;authDataOauth2)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_tls_html_a19312c7b58d94aa05927ee33922731de"><div class="ttname"><a href="classpulsar_1_1_auth_tls.html#a19312c7b58d94aa05927ee33922731de">pulsar::AuthTls::create</a></div><div class="ttdeci">static AuthenticationPtr create(const std::string &amp;authParamsString)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_tls_html_a2c87f86950aa979f666896e7a5f79398"><div class="ttname"><a href="classpulsar_1_1_auth_tls.html#a2c87f86950aa979f666896e7a5f79398">pulsar::AuthTls::getAuthMethodName</a></div><div class="ttdeci">const std::string getAuthMethodName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_tls_html_a3a2603a8be94cdde4845c941dc8871cc"><div class="ttname"><a href="classpulsar_1_1_auth_tls.html#a3a2603a8be94cdde4845c941dc8871cc">pulsar::AuthTls::create</a></div><div class="ttdeci">static AuthenticationPtr create(ParamMap &amp;params)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_tls_html_ac32274cb7d7095cfcd35fcebcf277d5b"><div class="ttname"><a href="classpulsar_1_1_auth_tls.html#ac32274cb7d7095cfcd35fcebcf277d5b">pulsar::AuthTls::create</a></div><div class="ttdeci">static AuthenticationPtr create(const std::string &amp;certificatePath, const std::string &amp;privateKeyPath)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_tls_html_ae88d06f62a47e92e7c52e74df3cacb56"><div class="ttname"><a href="classpulsar_1_1_auth_tls.html#ae88d06f62a47e92e7c52e74df3cacb56">pulsar::AuthTls::getAuthData</a></div><div class="ttdeci">Result getAuthData(AuthenticationDataPtr &amp;authDataTls)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_token_html_a0d1bf202c18b9131be315b166b4b1caa"><div class="ttname"><a href="classpulsar_1_1_auth_token.html#a0d1bf202c18b9131be315b166b4b1caa">pulsar::AuthToken::getAuthMethodName</a></div><div class="ttdeci">const std::string getAuthMethodName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_token_html_a212a8af7680f196e4fba4e0152e6d0a5"><div class="ttname"><a href="classpulsar_1_1_auth_token.html#a212a8af7680f196e4fba4e0152e6d0a5">pulsar::AuthToken::getAuthData</a></div><div class="ttdeci">Result getAuthData(AuthenticationDataPtr &amp;authDataToken)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_token_html_a80911f1374df425fdb76f066dfe7ebd9"><div class="ttname"><a href="classpulsar_1_1_auth_token.html#a80911f1374df425fdb76f066dfe7ebd9">pulsar::AuthToken::createWithToken</a></div><div class="ttdeci">static AuthenticationPtr createWithToken(const std::string &amp;token)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_token_html_a9601a01bd5b7b644531d82fc3cfa7d09"><div class="ttname"><a href="classpulsar_1_1_auth_token.html#a9601a01bd5b7b644531d82fc3cfa7d09">pulsar::AuthToken::create</a></div><div class="ttdeci">static AuthenticationPtr create(const std::string &amp;authParamsString)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_token_html_aa4d3740c838620765a7332bf2247b5e9"><div class="ttname"><a href="classpulsar_1_1_auth_token.html#aa4d3740c838620765a7332bf2247b5e9">pulsar::AuthToken::create</a></div><div class="ttdeci">static AuthenticationPtr create(ParamMap &amp;params)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_token_html_ae9b2da50ad0c22335b298d939239602c"><div class="ttname"><a href="classpulsar_1_1_auth_token.html#ae9b2da50ad0c22335b298d939239602c">pulsar::AuthToken::create</a></div><div class="ttdeci">static AuthenticationPtr create(const TokenSupplier &amp;tokenSupplier)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_authentication_data_provider_html_a1ad6773dcb324d73d6fe6aaa01927e67"><div class="ttname"><a href="classpulsar_1_1_authentication_data_provider.html#a1ad6773dcb324d73d6fe6aaa01927e67">pulsar::AuthenticationDataProvider::hasDataFromCommand</a></div><div class="ttdeci">virtual bool hasDataFromCommand()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_authentication_data_provider_html_a1ea19f94ab4b5479022a1df0f566668d"><div class="ttname"><a href="classpulsar_1_1_authentication_data_provider.html#a1ea19f94ab4b5479022a1df0f566668d">pulsar::AuthenticationDataProvider::getCommandData</a></div><div class="ttdeci">virtual std::string getCommandData()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_authentication_data_provider_html_a8a86f5d276fafcc7f35bc49a365be9f8"><div class="ttname"><a href="classpulsar_1_1_authentication_data_provider.html#a8a86f5d276fafcc7f35bc49a365be9f8">pulsar::AuthenticationDataProvider::getTlsPrivateKey</a></div><div class="ttdeci">virtual std::string getTlsPrivateKey()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_authentication_data_provider_html_a90657a3943e3baed5dc5d469e8c64d2a"><div class="ttname"><a href="classpulsar_1_1_authentication_data_provider.html#a90657a3943e3baed5dc5d469e8c64d2a">pulsar::AuthenticationDataProvider::getHttpHeaders</a></div><div class="ttdeci">virtual std::string getHttpHeaders()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_authentication_data_provider_html_ab201bbb1a90f3d4ca580bec9021d9d53"><div class="ttname"><a href="classpulsar_1_1_authentication_data_provider.html#ab201bbb1a90f3d4ca580bec9021d9d53">pulsar::AuthenticationDataProvider::getHttpAuthType</a></div><div class="ttdeci">virtual std::string getHttpAuthType()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_authentication_data_provider_html_af2694d6a80dfe8af67c16ef45f3e9645"><div class="ttname"><a href="classpulsar_1_1_authentication_data_provider.html#af2694d6a80dfe8af67c16ef45f3e9645">pulsar::AuthenticationDataProvider::getTlsCertificates</a></div><div class="ttdeci">virtual std::string getTlsCertificates()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_authentication_data_provider_html_af500b208a36e4849bd9ee1f6c48eb60e"><div class="ttname"><a href="classpulsar_1_1_authentication_data_provider.html#af500b208a36e4849bd9ee1f6c48eb60e">pulsar::AuthenticationDataProvider::hasDataForTls</a></div><div class="ttdeci">virtual bool hasDataForTls()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_authentication_data_provider_html_afbe3f1d0356a5d362bffc7f8253bf631"><div class="ttname"><a href="classpulsar_1_1_authentication_data_provider.html#afbe3f1d0356a5d362bffc7f8253bf631">pulsar::AuthenticationDataProvider::hasDataForHttp</a></div><div class="ttdeci">virtual bool hasDataForHttp()</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_authentication_html_a0ff47251bd4184cd0e9155e76a5c35bb"><div class="ttname"><a href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">pulsar::Authentication::parseDefaultFormatAuthParams</a></div><div class="ttdeci">static ParamMap parseDefaultFormatAuthParams(const std::string &amp;authParamsString)</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_authentication_html_aafe5c68d220ae0926a2c66953eafed57"><div class="ttname"><a href="classpulsar_1_1_authentication.html#aafe5c68d220ae0926a2c66953eafed57">pulsar::Authentication::getAuthMethodName</a></div><div class="ttdeci">virtual const std::string getAuthMethodName() const =0</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_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:31</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>
+<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_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_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_oauth2_token_result_html_a41359aec5371cbcea46cad38e02e28b4"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#a41359aec5371cbcea46cad38e02e28b4">pulsar::Oauth2TokenResult::getAccessToken</a></div><div class="ttdeci">const std::string &amp; getAccessToken() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_token_result_html_a87d8e7e923d1ca96d5c0425cf80d5d42"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#a87d8e7e923d1ca96d5c0425cf80d5d42">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_oauth2_token_result_html_a9cdc37fbe7d61486affda02a753ff1dc"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#a9cdc37fbe7d61486affda02a753ff1dc">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_oauth2_token_result_html_aa27ab0a802260bbf7142e03fd6c8bb46"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#aa27ab0a802260bbf7142e03fd6c8bb46">pulsar::Oauth2TokenResult::setExpiresIn</a></div><div class="ttdeci">Oauth2TokenResult &amp; setExpiresIn(const int64_t expiresIn)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_token_result_html_ab3f6c44eaa2f4eed65e98fdfa2e3cd95"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#ab3f6c44eaa2f4eed65e98fdfa2e3cd95">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_ad04cbc8f2c1980d7603b13bdac2359e7"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#ad04cbc8f2c1980d7603b13bdac2359e7">pulsar::Oauth2TokenResult::getIdToken</a></div><div class="ttdeci">const std::string &amp; getIdToken() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_token_result_html_af592ce6cc7e7633da3c03cfaa9f0876f"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#af592ce6cc7e7633da3c03cfaa9f0876f">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="anamespacepulsar_html_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a0aac5dae08c453e94161e28d7cd5a92f"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a0aac5dae08c453e94161e28d7cd5a92f">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:35</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_batch_receive_policy_8h_source.html b/static/api/cpp/4.0.x/_batch_receive_policy_8h_source.html
new file mode 100644
index 00000000000..c415df9efc9
--- /dev/null
+++ b/static/api/cpp/4.0.x/_batch_receive_policy_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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef BATCH_RECEIVE_POLICY_HPP_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define BATCH_RECEIVE_POLICY_HPP_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">struct </span>BatchReceivePolicyImpl;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span></div>
+<div class="foldopen" id="foldopen00052" data-start="{" data-end="};">
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="classpulsar_1_1_batch_receive_policy.html">   52</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_function" href="classpulsar_1_1_batch_receive_policy.html#a95e11e66f6e2a2ae0d842c39f15ebfe0">BatchReceivePolicy</a> {</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="classpulsar_1_1_batch_receive_policy.html#a95e11e66f6e2a2ae0d842c39f15ebfe0">   57</a></span>    <a class="code hl_function" href="classpulsar_1_1_batch_receive_policy.html#a95e11e66f6e2a2ae0d842c39f15ebfe0">BatchReceivePolicy</a>();</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span></div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="classpulsar_1_1_batch_receive_policy.html#af991536bbae3de08b7d11ad3ad28f647">   66</a></span>    <a class="code hl_function" href="classpulsar_1_1_batch_receive_policy.html#af991536bbae3de08b7d11ad3ad28f647">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 id="l00067" name="l00067"></a><span class="lineno">   67</span></div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="classpulsar_1_1_batch_receive_policy.html#acb75726b7e7a75dc65181bada30b9f31">   73</a></span>    <span class="keywordtype">long</span> <a class="code hl_function" href="classpulsar_1_1_batch_receive_policy.html#acb75726b7e7a75dc65181bada30b9f31">getTimeoutMs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span></div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="classpulsar_1_1_batch_receive_policy.html#a079a3ecd654faeff462a673a4ba94940">   79</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_batch_receive_policy.html#a079a3ecd654faeff462a673a4ba94940">getMaxNumMessages</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span></div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="classpulsar_1_1_batch_receive_policy.html#a81bf902bd62c003126aafb50a1ea7dea">   85</a></span>    <span class="keywordtype">long</span> <a class="code hl_function" href="classpulsar_1_1_batch_receive_policy.html#a81bf902bd62c003126aafb50a1ea7dea">getMaxNumBytes</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span> </div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>    std::shared_ptr&lt;BatchReceivePolicyImpl&gt; impl_;</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>};</div>
+</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span> </div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span><span class="preprocessor">#endif </span><span class="comment">/* BATCH_RECEIVE_POLICY_HPP_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="aclasspulsar_1_1_batch_receive_policy_html_a079a3ecd654faeff462a673a4ba94940"><div class="ttname"><a href="classpulsar_1_1_batch_receive_policy.html#a079a3ecd654faeff462a673a4ba94940">pulsar::BatchReceivePolicy::getMaxNumMessages</a></div><div class="ttdeci">int getMaxNumMessages() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_batch_receive_policy_html_a81bf902bd62c003126aafb50a1ea7dea"><div class="ttname"><a href="classpulsar_1_1_batch_receive_policy.html#a81bf902bd62c003126aafb50a1ea7dea">pulsar::BatchReceivePolicy::getMaxNumBytes</a></div><div class="ttdeci">long getMaxNumBytes() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_batch_receive_policy_html_a95e11e66f6e2a2ae0d842c39f15ebfe0"><div class="ttname"><a href="classpulsar_1_1_batch_receive_policy.html#a95e11e66f6e2a2ae0d842c39f15ebfe0">pulsar::BatchReceivePolicy::BatchReceivePolicy</a></div><div class="ttdeci">BatchReceivePolicy()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_batch_receive_policy_html_acb75726b7e7a75dc65181bada30b9f31"><div class="ttname"><a href="classpulsar_1_1_batch_receive_policy.html#acb75726b7e7a75dc65181bada30b9f31">pulsar::BatchReceivePolicy::getTimeoutMs</a></div><div class="ttdeci">long getTimeoutMs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_batch_receive_policy_html_af991536bbae3de08b7d11ad3ad28f647"><div class="ttname"><a href="classpulsar_1_1_batch_receive_policy.html#af991536bbae3de08b7d11ad3ad28f647">pulsar::BatchReceivePolicy::BatchReceivePolicy</a></div><div class="ttdeci">BatchReceivePolicy(int maxNumMessage, long maxNumBytes, long timeoutMs)</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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_broker_consumer_stats_8h_source.html b/static/api/cpp/4.0.x/_broker_consumer_stats_8h_source.html
new file mode 100644
index 00000000000..630b074d8c7
--- /dev/null
+++ b/static/api/cpp/4.0.x/_broker_consumer_stats_8h_source.html
@@ -0,0 +1,172 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_CPP_BROKERCONSUMERSTATS_H</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_CPP_BROKERCONSUMERSTATS_H</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/ConsumerType.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;iostream&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="keyword">class </span>BrokerConsumerStatsImplBase;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="comment">/* @note: isValid() or getXXX() methods are not allowed on an invalid BrokerConsumerStats */</span></div>
+<div class="foldopen" id="foldopen00035" data-start="{" data-end="};">
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html">   35</a></span><span class="keyword">class </span>PULSAR_PUBLIC BrokerConsumerStats {</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    std::shared_ptr&lt;BrokerConsumerStatsImplBase&gt; impl_;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>    BrokerConsumerStats() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>    <span class="keyword">explicit</span> BrokerConsumerStats(std::shared_ptr&lt;BrokerConsumerStatsImplBase&gt; impl);</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>    <span class="keyword">virtual</span> ~BrokerConsumerStats() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span></div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#a6ab876378e9c76098bd48ee9753faec0">   46</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#a6ab876378e9c76098bd48ee9753faec0">isValid</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span></div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#a09a325a6512dce27e33f8ddeac7a94ba">   49</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#a09a325a6512dce27e33f8ddeac7a94ba">getMsgRateOut</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span></div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#a9527c5b503ce7b96d14cc6bd1125bdb4">   52</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#a9527c5b503ce7b96d14cc6bd1125bdb4">getMsgThroughputOut</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span></div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#af729bd5a41ddcdf9bfec48d512e3e272">   55</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#af729bd5a41ddcdf9bfec48d512e3e272">getMsgRateRedeliver</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span></div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#a2c473d54fdb38abf2c19d655427185f4">   58</a></span>    <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#a2c473d54fdb38abf2c19d655427185f4">getConsumerName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span></div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#a124a4228983be259fdcfa511814a3920">   61</a></span>    <span class="keyword">virtual</span> uint64_t <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#a124a4228983be259fdcfa511814a3920">getAvailablePermits</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span></div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#aeaa33caf3a417444b631c6db711806f7">   64</a></span>    <span class="keyword">virtual</span> uint64_t <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#aeaa33caf3a417444b631c6db711806f7">getUnackedMessages</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span></div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#ae47fe1710c172b602bd346baf8791ed9">   67</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#ae47fe1710c172b602bd346baf8791ed9">isBlockedConsumerOnUnackedMsgs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span></div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#a6b5567d414e4f82f59b97feb2e353d35">   70</a></span>    <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#a6b5567d414e4f82f59b97feb2e353d35">getAddress</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span></div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#a9b0459d295199b294c02f16bd388de04">   73</a></span>    <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#a9b0459d295199b294c02f16bd388de04">getConnectedSince</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span></div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#ae1f1da70eab4c1436a40a2c5ab9c8d6a">   76</a></span>    <span class="keyword">virtual</span> <a class="code hl_enumeration" href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8e">ConsumerType</a> <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#ae1f1da70eab4c1436a40a2c5ab9c8d6a">getType</a>() <span class="keyword">const [...]
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span></div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#adee6895ac624d9fbab24f58f7f62859b">   79</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#adee6895ac624d9fbab24f58f7f62859b">getMsgRateExpired</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span></div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#a55167beb17344517fedf88a2e86a3024">   82</a></span>    <span class="keyword">virtual</span> uint64_t <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#a55167beb17344517fedf88a2e86a3024">getMsgBacklog</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span></div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html#a327a6687c6d5386a54e1a9ac4e027e9e">   85</a></span>    std::shared_ptr&lt;BrokerConsumerStatsImplBase&gt; <a class="code hl_function" href="classpulsar_1_1_broker_consumer_stats.html#a327a6687c6d5386a54e1a9ac4e027e9e">getImpl</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span> </div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>    <span class="keyword">friend</span> PULSAR_PUBLIC std::ostream &amp;operator&lt;&lt;(std::ostream &amp;os, <span class="keyword">const</span> BrokerConsumerStats &amp;obj);</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>};</div>
+</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> result, <a class="code hl_class" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a> brokerConsumerStats)&gt;</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>    BrokerConsumerStatsCallback;</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span><span class="preprocessor">#endif  </span><span class="comment">// PULSAR_CPP_BROKERCONSUMERSTATS_H</span></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="aclasspulsar_1_1_broker_consumer_stats_html_a09a325a6512dce27e33f8ddeac7a94ba"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#a09a325a6512dce27e33f8ddeac7a94ba">pulsar::BrokerConsumerStats::getMsgRateOut</a></div><div class="ttdeci">virtual double getMsgRateOut() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html_a124a4228983be259fdcfa511814a3920"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#a124a4228983be259fdcfa511814a3920">pulsar::BrokerConsumerStats::getAvailablePermits</a></div><div class="ttdeci">virtual uint64_t getAvailablePermits() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html_a2c473d54fdb38abf2c19d655427185f4"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#a2c473d54fdb38abf2c19d655427185f4">pulsar::BrokerConsumerStats::getConsumerName</a></div><div class="ttdeci">virtual const std::string getConsumerName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html_a327a6687c6d5386a54e1a9ac4e027e9e"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#a327a6687c6d5386a54e1a9ac4e027e9e">pulsar::BrokerConsumerStats::getImpl</a></div><div class="ttdeci">std::shared_ptr&lt; BrokerConsumerStatsImplBase &gt; getImpl() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html_a55167beb17344517fedf88a2e86a3024"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#a55167beb17344517fedf88a2e86a3024">pulsar::BrokerConsumerStats::getMsgBacklog</a></div><div class="ttdeci">virtual uint64_t getMsgBacklog() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html_a6ab876378e9c76098bd48ee9753faec0"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#a6ab876378e9c76098bd48ee9753faec0">pulsar::BrokerConsumerStats::isValid</a></div><div class="ttdeci">virtual bool isValid() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html_a6b5567d414e4f82f59b97feb2e353d35"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#a6b5567d414e4f82f59b97feb2e353d35">pulsar::BrokerConsumerStats::getAddress</a></div><div class="ttdeci">virtual const std::string getAddress() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html_a9527c5b503ce7b96d14cc6bd1125bdb4"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#a9527c5b503ce7b96d14cc6bd1125bdb4">pulsar::BrokerConsumerStats::getMsgThroughputOut</a></div><div class="ttdeci">virtual double getMsgThroughputOut() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html_a9b0459d295199b294c02f16bd388de04"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#a9b0459d295199b294c02f16bd388de04">pulsar::BrokerConsumerStats::getConnectedSince</a></div><div class="ttdeci">virtual const std::string getConnectedSince() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html_adee6895ac624d9fbab24f58f7f62859b"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#adee6895ac624d9fbab24f58f7f62859b">pulsar::BrokerConsumerStats::getMsgRateExpired</a></div><div class="ttdeci">virtual double getMsgRateExpired() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html_ae1f1da70eab4c1436a40a2c5ab9c8d6a"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#ae1f1da70eab4c1436a40a2c5ab9c8d6a">pulsar::BrokerConsumerStats::getType</a></div><div class="ttdeci">virtual ConsumerType getType() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html_ae47fe1710c172b602bd346baf8791ed9"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#ae47fe1710c172b602bd346baf8791ed9">pulsar::BrokerConsumerStats::isBlockedConsumerOnUnackedMsgs</a></div><div class="ttdeci">virtual bool isBlockedConsumerOnUnackedMsgs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html_aeaa33caf3a417444b631c6db711806f7"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#aeaa33caf3a417444b631c6db711806f7">pulsar::BrokerConsumerStats::getUnackedMessages</a></div><div class="ttdeci">virtual uint64_t getUnackedMessages() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html_af729bd5a41ddcdf9bfec48d512e3e272"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html#af729bd5a41ddcdf9bfec48d512e3e272">pulsar::BrokerConsumerStats::getMsgRateRedeliver</a></div><div class="ttdeci">virtual double getMsgRateRedeliver() const</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_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</div></div>
+<div class="ttc" id="anamespacepulsar_html_a9001dd59f719a974dc7b4ef5858dda8e"><div class="ttname"><a href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8e">pulsar::ConsumerType</a></div><div class="ttdeci">ConsumerType</div><div class="ttdef"><b>Definition</b> ConsumerType.h:26</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_client_8h_source.html b/static/api/cpp/4.0.x/_client_8h_source.html
new file mode 100644
index 00000000000..26c90306c60
--- /dev/null
+++ b/static/api/cpp/4.0.x/_client_8h_source.html
@@ -0,0 +1,254 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_CLIENT_HPP_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_CLIENT_HPP_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/ClientConfiguration.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/ConsoleLoggerFactory.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/Consumer.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;pulsar/FileLoggerFactory.h&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;pulsar/MessageBuilder.h&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#include &lt;pulsar/Producer.h&gt;</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="preprocessor">#include &lt;pulsar/Reader.h&gt;</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="preprocessor">#include &lt;pulsar/Schema.h&gt;</span></div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="preprocessor">#include &lt;pulsar/TableView.h&gt;</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a>, <a class="code hl_class" href="classpulsar_1_1_producer.html">Producer</a>)&gt; CreateProducerCallback;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a>, <a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a>)&gt; SubscribeCallback;</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a>, <a class="code hl_class" href="classpulsar_1_1_reader.html">Reader</a>)&gt; ReaderCallback;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a>, <a class="code hl_class" href="classpulsar_1_1_table_view.html">TableView</a>)&gt; TableViewCallback;</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a>, <span class="keyword">const</span> std::vector&lt;std::string&gt;&amp;)&gt; GetPartitionsCallback;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a>)&gt; CloseCallback;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span><span class="keyword">class </span>ClientImpl;</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span><span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span><span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span> </div>
+<div class="foldopen" id="foldopen00049" data-start="{" data-end="};">
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html">   49</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_function" href="classpulsar_1_1_client.html#acab90af5d0542803bc1d10e68d27414f">Client</a> {</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#acab90af5d0542803bc1d10e68d27414f">   58</a></span>    <a class="code hl_function" href="classpulsar_1_1_client.html#acab90af5d0542803bc1d10e68d27414f">Client</a>(<span class="keyword">const</span> std::string&amp; serviceUrl);</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span></div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a148122b14f22844d359c35c084907962">   69</a></span>    <a class="code hl_function" href="classpulsar_1_1_client.html#a148122b14f22844d359c35c084907962">Client</a>(<span class="keyword">const</span> std::string&amp; serviceUrl, <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; clien [...]
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span></div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a96f49cc0ce27bfe68d75224991f0ba52">   81</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_client.html#a96f49cc0ce27bfe68d75224991f0ba52">createProducer</a>(<span class="keyword">const</span> std::string&amp; topic, <a class="code hl_class" href="class [...]
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span></div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#aae7658dee80ad23b418cfb7e12f5df05">   94</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_client.html#aae7658dee80ad23b418cfb7e12f5df05">createProducer</a>(<span class="keyword">const</span> std::string&amp; topic, <span class="keyword">const</span> < [...]
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span></div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a7e60b3a2ad7a2aaba14da614feccf442">  104</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#a7e60b3a2ad7a2aaba14da614feccf442">createProducerAsync</a>(<span class="keyword">const</span> std::string&amp; topic, <span class="keyword">const</span> CreateProducerCallback&amp; callback);</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span></div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a500b0255095c5a5f9a5bfa2de3be101c">  113</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#a500b0255095c5a5f9a5bfa2de3be101c">createProducerAsync</a>(<span class="keyword">const</span> std::string&amp; topic, <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_producer_config [...]
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>                             <span class="keyword">const</span> CreateProducerCallback&amp; callback);</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span></div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a9f32b4d1101f8f2fb5029013c87779ab">  124</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_client.html#a9f32b4d1101f8f2fb5029013c87779ab">subscribe</a>(<span class="keyword">const</span> std::string&amp; topic, <span class="keyword">const</span> std::s [...]
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span></div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a11b3ca7d9174a0912bf51b742f7f825a">  134</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_client.html#a11b3ca7d9174a0912bf51b742f7f825a">subscribe</a>(<span class="keyword">const</span> std::string&amp; topic, <span class="keyword">const</span> std::s [...]
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span>                     <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; conf, <a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a>&amp; consumer);</div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span></div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a28fcb312864446c441530ec3088a8ca2">  146</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#a28fcb312864446c441530ec3088a8ca2">subscribeAsync</a>(<span class="keyword">const</span> std::string&amp; topic, <span class="keyword">const</span> std::string&amp; subscriptionName,</div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span>                        <span class="keyword">const</span> SubscribeCallback&amp; callback);</div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span></div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a0b23a074225bf8aea5e73090072c9a55">  159</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#a0b23a074225bf8aea5e73090072c9a55">subscribeAsync</a>(<span class="keyword">const</span> std::string&amp; topic, <span class="keyword">const</span> std::string&amp; subscriptionName,</div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span>                        <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; conf, <span class="keyword">const</span> SubscribeCallback&amp; callback);</div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span></div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#aea2d7918286ecd127751d06e191a5471">  169</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_client.html#aea2d7918286ecd127751d06e191a5471">subscribe</a>(<span class="keyword">const</span> std::vector&lt;std::string&gt;&amp; topics, <span class="keyword" [...]
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span>                     <a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a>&amp; consumer);</div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span></div>
+<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a9188d5fafbb23da16f859592316947e4">  180</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_client.html#a9188d5fafbb23da16f859592316947e4">subscribe</a>(<span class="keyword">const</span> std::vector&lt;std::string&gt;&amp; topics, <span class="keyword" [...]
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno">  181</span>                     <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; conf, <a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a>&amp; consumer);</div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span></div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a34ed4cb4ee012a187cc19d92808dc879">  193</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#a34ed4cb4ee012a187cc19d92808dc879">subscribeAsync</a>(<span class="keyword">const</span> std::vector&lt;std::string&gt;&amp; topics, <span class="keyword">const</span> std::string&amp; subscriptionName,</div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span>                        <span class="keyword">const</span> SubscribeCallback&amp; callback);</div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span></div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#aab5f8742d3e390fb5c03194909ceb40b">  206</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#aab5f8742d3e390fb5c03194909ceb40b">subscribeAsync</a>(<span class="keyword">const</span> std::vector&lt;std::string&gt;&amp; topics, <span class="keyword">const</span> std::string&amp; subscriptionName,</div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span>                        <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; conf, <span class="keyword">const</span> SubscribeCallback&amp; callback);</div>
+<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span></div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a086549ca0d057be1e9d00ca483995621">  212</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_client.html#a086549ca0d057be1e9d00ca483995621">subscribeWithRegex</a>(<span class="keyword">const</span> std::string&amp; regexPattern, <span class="keyword">con [...]
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span>                              <a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a>&amp; consumer);</div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno">  214</span></div>
+<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a11016481c032f7d07e3ab5be341c9344">  219</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_client.html#a11016481c032f7d07e3ab5be341c9344">subscribeWithRegex</a>(<span class="keyword">const</span> std::string&amp; regexPattern, <span class="keyword">con [...]
+<div class="line"><a id="l00220" name="l00220"></a><span class="lineno">  220</span>                              <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; conf, <a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a>&amp; consumer);</div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno">  221</span></div>
+<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a37d10a06eee84ba83d1c152e23c2c115">  229</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#a37d10a06eee84ba83d1c152e23c2c115">subscribeWithRegexAsync</a>(<span class="keyword">const</span> std::string&amp; regexPattern, <span class="keyword">const</span> std::string&amp; subscriptionName,</div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno">  230</span>                                 <span class="keyword">const</span> SubscribeCallback&amp; callback);</div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span></div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#acec028a2df74e7888d98ad601b23adc2">  242</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#acec028a2df74e7888d98ad601b23adc2">subscribeWithRegexAsync</a>(<span class="keyword">const</span> std::string&amp; regexPattern, <span class="keyword">const</span> std::string&amp; subscriptionName,</div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno">  243</span>                                 <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; conf, <span class="keyword">const</span> SubscribeCallback&amp; callback);</div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno">  244</span></div>
+<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#ad2f6404e06200714e1fe82419b7c963a">  274</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_client.html#ad2f6404e06200714e1fe82419b7c963a">createReader</a>(<span class="keyword">const</span> std::string&amp; topic, <span class="keyword">const</span> <a  [...]
+<div class="line"><a id="l00275" name="l00275"></a><span class="lineno">  275</span>                        <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>&amp; conf, <a class="code hl_class" href="classpulsar_1_1_reader.html">Reader</a>&amp; reader);</div>
+<div class="line"><a id="l00276" name="l00276"></a><span class="lineno">  276</span></div>
+<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a3d8d957bb4b32794684c1d9595aeff7f">  303</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#a3d8d957bb4b32794684c1d9595aeff7f">createReaderAsync</a>(<span class="keyword">const</span> std::string&amp; topic, <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html"> [...]
+<div class="line"><a id="l00304" name="l00304"></a><span class="lineno">  304</span>                           <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>&amp; conf, <span class="keyword">const</span> ReaderCallback&amp; callback);</div>
+<div class="line"><a id="l00305" name="l00305"></a><span class="lineno">  305</span></div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#aafa5591b8fc3241e50c2b1f2e3bafe24">  318</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_client.html#aafa5591b8fc3241e50c2b1f2e3bafe24">createTableView</a>(<span class="keyword">const</span> std::string&amp; topic, <span class="keyword">const</span>  [...]
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span>                           <a class="code hl_class" href="classpulsar_1_1_table_view.html">TableView</a>&amp; tableView);</div>
+<div class="line"><a id="l00320" name="l00320"></a><span class="lineno">  320</span></div>
+<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#acef8e93155a245037a89c317231dca09">  333</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#acef8e93155a245037a89c317231dca09">createTableViewAsync</a>(<span class="keyword">const</span> std::string&amp; topic, <span class="keyword">const</span> <a class="code hl_struct" href="structpulsar_1_1_table_view_c [...]
+<div class="line"><a id="l00334" name="l00334"></a><span class="lineno">  334</span>                              <span class="keyword">const</span> TableViewCallback&amp; callBack);</div>
+<div class="line"><a id="l00335" name="l00335"></a><span class="lineno">  335</span></div>
+<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a208629aff52395ad0072622ae82f5657">  349</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_client.html#a208629aff52395ad0072622ae82f5657">getPartitionsForTopic</a>(<span class="keyword">const</span> std::string&amp; topic, std::vector&lt;std::string&gt [...]
+<div class="line"><a id="l00350" name="l00350"></a><span class="lineno">  350</span></div>
+<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#aef3dbd7892cb923901f04dd2e0176561">  366</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#aef3dbd7892cb923901f04dd2e0176561">getPartitionsForTopicAsync</a>(<span class="keyword">const</span> std::string&amp; topic, <span class="keyword">const</span> GetPartitionsCallback&amp; callback);</div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno">  367</span></div>
+<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#ac3f0a65b099f88781548d4fad41685ac">  372</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_client.html#ac3f0a65b099f88781548d4fad41685ac">close</a>();</div>
+<div class="line"><a id="l00373" name="l00373"></a><span class="lineno">  373</span></div>
+<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a07adae8c6621b53db66d761f8f2578b3">  383</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#a07adae8c6621b53db66d761f8f2578b3">closeAsync</a>(<span class="keyword">const</span> CloseCallback&amp; callback);</div>
+<div class="line"><a id="l00384" name="l00384"></a><span class="lineno">  384</span></div>
+<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#aecac8bf91b474339455fe0519f6ba71e">  391</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#aecac8bf91b474339455fe0519f6ba71e">shutdown</a>();</div>
+<div class="line"><a id="l00392" name="l00392"></a><span class="lineno">  392</span></div>
+<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a5225a8d2b121cce6e205ef6e2471cdbc">  398</a></span>    uint64_t <a class="code hl_function" href="classpulsar_1_1_client.html#a5225a8d2b121cce6e205ef6e2471cdbc">getNumberOfProducers</a>();</div>
+<div class="line"><a id="l00399" name="l00399"></a><span class="lineno">  399</span></div>
+<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#a1134874e191f8bf395c020f1ed3b2423">  405</a></span>    uint64_t <a class="code hl_function" href="classpulsar_1_1_client.html#a1134874e191f8bf395c020f1ed3b2423">getNumberOfConsumers</a>();</div>
+<div class="line"><a id="l00406" name="l00406"></a><span class="lineno">  406</span></div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client.html#aa24ed12d3228c31c923e33fee1eb6f55">  414</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_client.html#aa24ed12d3228c31c923e33fee1eb6f55">getSchemaInfoAsync</a>(<span class="keyword">const</span> std::string&amp; topic, int64_t version,</div>
+<div class="line"><a id="l00415" name="l00415"></a><span class="lineno">  415</span>                            std::function&lt;<span class="keywordtype">void</span>(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a>, <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>&amp;)&gt; callback);</div>
+<div class="line"><a id="l00416" name="l00416"></a><span class="lineno">  416</span> </div>
+<div class="line"><a id="l00417" name="l00417"></a><span class="lineno">  417</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00418" name="l00418"></a><span class="lineno">  418</span>    <a class="code hl_function" href="classpulsar_1_1_client.html#acab90af5d0542803bc1d10e68d27414f">Client</a>(<span class="keyword">const</span> std::shared_ptr&lt;ClientImpl&gt;&amp;);</div>
+<div class="line"><a id="l00419" name="l00419"></a><span class="lineno">  419</span> </div>
+<div class="line"><a id="l00420" name="l00420"></a><span class="lineno">  420</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a id="l00421" name="l00421"></a><span class="lineno">  421</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00422" name="l00422"></a><span class="lineno">  422</span>    std::shared_ptr&lt;ClientImpl&gt; impl_;</div>
+<div class="line"><a id="l00423" name="l00423"></a><span class="lineno">  423</span>};</div>
+</div>
+<div class="line"><a id="l00424" name="l00424"></a><span class="lineno">  424</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00425" name="l00425"></a><span class="lineno">  425</span> </div>
+<div class="line"><a id="l00426" name="l00426"></a><span class="lineno">  426</span><span class="preprocessor">#endif </span><span class="comment">/* PULSAR_CLIENT_HPP_ */</span><span class="preprocessor"></span></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:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a07adae8c6621b53db66d761f8f2578b3"><div class="ttname"><a href="classpulsar_1_1_client.html#a07adae8c6621b53db66d761f8f2578b3">pulsar::Client::closeAsync</a></div><div class="ttdeci">void closeAsync(const CloseCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a086549ca0d057be1e9d00ca483995621"><div class="ttname"><a href="classpulsar_1_1_client.html#a086549ca0d057be1e9d00ca483995621">pulsar::Client::subscribeWithRegex</a></div><div class="ttdeci">Result subscribeWithRegex(const std::string &amp;regexPattern, const std::string &amp;subscriptionName, Consumer &amp;consumer)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a0b23a074225bf8aea5e73090072c9a55"><div class="ttname"><a href="classpulsar_1_1_client.html#a0b23a074225bf8aea5e73090072c9a55">pulsar::Client::subscribeAsync</a></div><div class="ttdeci">void subscribeAsync(const std::string &amp;topic, const std::string &amp;subscriptionName, const ConsumerConfiguration &amp;conf, const SubscribeCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a11016481c032f7d07e3ab5be341c9344"><div class="ttname"><a href="classpulsar_1_1_client.html#a11016481c032f7d07e3ab5be341c9344">pulsar::Client::subscribeWithRegex</a></div><div class="ttdeci">Result subscribeWithRegex(const std::string &amp;regexPattern, const std::string &amp;subscriptionName, const ConsumerConfiguration &amp;conf, Consumer &amp;consumer)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a1134874e191f8bf395c020f1ed3b2423"><div class="ttname"><a href="classpulsar_1_1_client.html#a1134874e191f8bf395c020f1ed3b2423">pulsar::Client::getNumberOfConsumers</a></div><div class="ttdeci">uint64_t getNumberOfConsumers()</div><div class="ttdoc">Get the number of alive consumers on the current client.</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a11b3ca7d9174a0912bf51b742f7f825a"><div class="ttname"><a href="classpulsar_1_1_client.html#a11b3ca7d9174a0912bf51b742f7f825a">pulsar::Client::subscribe</a></div><div class="ttdeci">Result subscribe(const std::string &amp;topic, const std::string &amp;subscriptionName, const ConsumerConfiguration &amp;conf, Consumer &amp;consumer)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a148122b14f22844d359c35c084907962"><div class="ttname"><a href="classpulsar_1_1_client.html#a148122b14f22844d359c35c084907962">pulsar::Client::Client</a></div><div class="ttdeci">Client(const std::string &amp;serviceUrl, const ClientConfiguration &amp;clientConfiguration)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a208629aff52395ad0072622ae82f5657"><div class="ttname"><a href="classpulsar_1_1_client.html#a208629aff52395ad0072622ae82f5657">pulsar::Client::getPartitionsForTopic</a></div><div class="ttdeci">Result getPartitionsForTopic(const std::string &amp;topic, std::vector&lt; std::string &gt; &amp;partitions)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a28fcb312864446c441530ec3088a8ca2"><div class="ttname"><a href="classpulsar_1_1_client.html#a28fcb312864446c441530ec3088a8ca2">pulsar::Client::subscribeAsync</a></div><div class="ttdeci">void subscribeAsync(const std::string &amp;topic, const std::string &amp;subscriptionName, const SubscribeCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a34ed4cb4ee012a187cc19d92808dc879"><div class="ttname"><a href="classpulsar_1_1_client.html#a34ed4cb4ee012a187cc19d92808dc879">pulsar::Client::subscribeAsync</a></div><div class="ttdeci">void subscribeAsync(const std::vector&lt; std::string &gt; &amp;topics, const std::string &amp;subscriptionName, const SubscribeCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a37d10a06eee84ba83d1c152e23c2c115"><div class="ttname"><a href="classpulsar_1_1_client.html#a37d10a06eee84ba83d1c152e23c2c115">pulsar::Client::subscribeWithRegexAsync</a></div><div class="ttdeci">void subscribeWithRegexAsync(const std::string &amp;regexPattern, const std::string &amp;subscriptionName, const SubscribeCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a3d8d957bb4b32794684c1d9595aeff7f"><div class="ttname"><a href="classpulsar_1_1_client.html#a3d8d957bb4b32794684c1d9595aeff7f">pulsar::Client::createReaderAsync</a></div><div class="ttdeci">void createReaderAsync(const std::string &amp;topic, const MessageId &amp;startMessageId, const ReaderConfiguration &amp;conf, const ReaderCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a500b0255095c5a5f9a5bfa2de3be101c"><div class="ttname"><a href="classpulsar_1_1_client.html#a500b0255095c5a5f9a5bfa2de3be101c">pulsar::Client::createProducerAsync</a></div><div class="ttdeci">void createProducerAsync(const std::string &amp;topic, const ProducerConfiguration &amp;conf, const CreateProducerCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a5225a8d2b121cce6e205ef6e2471cdbc"><div class="ttname"><a href="classpulsar_1_1_client.html#a5225a8d2b121cce6e205ef6e2471cdbc">pulsar::Client::getNumberOfProducers</a></div><div class="ttdeci">uint64_t getNumberOfProducers()</div><div class="ttdoc">Get the number of alive producers on the current client.</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a7e60b3a2ad7a2aaba14da614feccf442"><div class="ttname"><a href="classpulsar_1_1_client.html#a7e60b3a2ad7a2aaba14da614feccf442">pulsar::Client::createProducerAsync</a></div><div class="ttdeci">void createProducerAsync(const std::string &amp;topic, const CreateProducerCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a9188d5fafbb23da16f859592316947e4"><div class="ttname"><a href="classpulsar_1_1_client.html#a9188d5fafbb23da16f859592316947e4">pulsar::Client::subscribe</a></div><div class="ttdeci">Result subscribe(const std::vector&lt; std::string &gt; &amp;topics, const std::string &amp;subscriptionName, const ConsumerConfiguration &amp;conf, Consumer &amp;consumer)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a96f49cc0ce27bfe68d75224991f0ba52"><div class="ttname"><a href="classpulsar_1_1_client.html#a96f49cc0ce27bfe68d75224991f0ba52">pulsar::Client::createProducer</a></div><div class="ttdeci">Result createProducer(const std::string &amp;topic, Producer &amp;producer)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_a9f32b4d1101f8f2fb5029013c87779ab"><div class="ttname"><a href="classpulsar_1_1_client.html#a9f32b4d1101f8f2fb5029013c87779ab">pulsar::Client::subscribe</a></div><div class="ttdeci">Result subscribe(const std::string &amp;topic, const std::string &amp;subscriptionName, Consumer &amp;consumer)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_aa24ed12d3228c31c923e33fee1eb6f55"><div class="ttname"><a href="classpulsar_1_1_client.html#aa24ed12d3228c31c923e33fee1eb6f55">pulsar::Client::getSchemaInfoAsync</a></div><div class="ttdeci">void getSchemaInfoAsync(const std::string &amp;topic, int64_t version, std::function&lt; void(Result, const SchemaInfo &amp;)&gt; callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_aab5f8742d3e390fb5c03194909ceb40b"><div class="ttname"><a href="classpulsar_1_1_client.html#aab5f8742d3e390fb5c03194909ceb40b">pulsar::Client::subscribeAsync</a></div><div class="ttdeci">void subscribeAsync(const std::vector&lt; std::string &gt; &amp;topics, const std::string &amp;subscriptionName, const ConsumerConfiguration &amp;conf, const SubscribeCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_aae7658dee80ad23b418cfb7e12f5df05"><div class="ttname"><a href="classpulsar_1_1_client.html#aae7658dee80ad23b418cfb7e12f5df05">pulsar::Client::createProducer</a></div><div class="ttdeci">Result createProducer(const std::string &amp;topic, const ProducerConfiguration &amp;conf, Producer &amp;producer)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_aafa5591b8fc3241e50c2b1f2e3bafe24"><div class="ttname"><a href="classpulsar_1_1_client.html#aafa5591b8fc3241e50c2b1f2e3bafe24">pulsar::Client::createTableView</a></div><div class="ttdeci">Result createTableView(const std::string &amp;topic, const TableViewConfiguration &amp;conf, TableView &amp;tableView)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_ac3f0a65b099f88781548d4fad41685ac"><div class="ttname"><a href="classpulsar_1_1_client.html#ac3f0a65b099f88781548d4fad41685ac">pulsar::Client::close</a></div><div class="ttdeci">Result close()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_acab90af5d0542803bc1d10e68d27414f"><div class="ttname"><a href="classpulsar_1_1_client.html#acab90af5d0542803bc1d10e68d27414f">pulsar::Client::Client</a></div><div class="ttdeci">Client(const std::string &amp;serviceUrl)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_acec028a2df74e7888d98ad601b23adc2"><div class="ttname"><a href="classpulsar_1_1_client.html#acec028a2df74e7888d98ad601b23adc2">pulsar::Client::subscribeWithRegexAsync</a></div><div class="ttdeci">void subscribeWithRegexAsync(const std::string &amp;regexPattern, const std::string &amp;subscriptionName, const ConsumerConfiguration &amp;conf, const SubscribeCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_acef8e93155a245037a89c317231dca09"><div class="ttname"><a href="classpulsar_1_1_client.html#acef8e93155a245037a89c317231dca09">pulsar::Client::createTableViewAsync</a></div><div class="ttdeci">void createTableViewAsync(const std::string &amp;topic, const TableViewConfiguration &amp;conf, const TableViewCallback &amp;callBack)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_ad2f6404e06200714e1fe82419b7c963a"><div class="ttname"><a href="classpulsar_1_1_client.html#ad2f6404e06200714e1fe82419b7c963a">pulsar::Client::createReader</a></div><div class="ttdeci">Result createReader(const std::string &amp;topic, const MessageId &amp;startMessageId, const ReaderConfiguration &amp;conf, Reader &amp;reader)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_aea2d7918286ecd127751d06e191a5471"><div class="ttname"><a href="classpulsar_1_1_client.html#aea2d7918286ecd127751d06e191a5471">pulsar::Client::subscribe</a></div><div class="ttdeci">Result subscribe(const std::vector&lt; std::string &gt; &amp;topics, const std::string &amp;subscriptionName, Consumer &amp;consumer)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_aecac8bf91b474339455fe0519f6ba71e"><div class="ttname"><a href="classpulsar_1_1_client.html#aecac8bf91b474339455fe0519f6ba71e">pulsar::Client::shutdown</a></div><div class="ttdeci">void shutdown()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_html_aef3dbd7892cb923901f04dd2e0176561"><div class="ttname"><a href="classpulsar_1_1_client.html#aef3dbd7892cb923901f04dd2e0176561">pulsar::Client::getPartitionsForTopicAsync</a></div><div class="ttdeci">void getPartitionsForTopicAsync(const std::string &amp;topic, const GetPartitionsCallback &amp;callback)</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_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_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_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:46</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>
+<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="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:147</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_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</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>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_client_configuration_8h_source.html b/static/api/cpp/4.0.x/_client_configuration_8h_source.html
new file mode 100644
index 00000000000..78ae352db98
--- /dev/null
+++ b/static/api/cpp/4.0.x/_client_configuration_8h_source.html
@@ -0,0 +1,303 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_CLIENTCONFIGURATION_H_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_CLIENTCONFIGURATION_H_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/Authentication.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/Logger.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="keyword">struct </span>ClientConfigurationImpl;</div>
+<div class="foldopen" id="foldopen00031" data-start="{" data-end="};">
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html">   31</a></span><span class="keyword">class </span>PULSAR_PUBLIC ClientConfiguration {</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>    ClientConfiguration();</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>    ~ClientConfiguration();</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>    ClientConfiguration(<span class="keyword">const</span> ClientConfiguration&amp;);</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>    ClientConfiguration&amp; operator=(<span class="keyword">const</span> ClientConfiguration&amp;);</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    <span class="keyword">enum</span> ProxyProtocol : uint8_t</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>    {</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>        SNI = 0</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>    };</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#ace74b6344c19c7039087be76d86528f6">   48</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#ace74b6344c19c7039087be76d86528f6">setMemoryLimit</a>(uint64_t memoryLimitBytes);</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span></div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#aa09cf22a285653ce9a551e85342dff49">   53</a></span>    uint64_t <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#aa09cf22a285653ce9a551e85342dff49">getMemoryLimit</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span></div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a3a2246877634534eb3163ed45221a6f5">   63</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a3a2246877634534eb3163ed45221a6f5">setConnectionsPerBroker</a>(<span class="keywordtype">int</span> connectionsPerBroker);</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span></div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a0405e2db9228972cfbc972b3f550d8ad">   68</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a0405e2db9228972cfbc972b3f550d8ad">getConnectionsPerBroker</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span></div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a283f6a724a4fdd8fa1def661e253eafb">   75</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a283f6a724a4fdd8fa1def661e253eafb">setAuth</a>(<span class="keyword">const</span> AuthenticationPtr&amp; authentication);</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span></div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a2973aed4fed3479aeceef9e97d26ef63">   80</a></span>    <a class="code hl_class" href="classpulsar_1_1_authentication.html">Authentication</a>&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a2973aed4fed3479aeceef9e97d26ef63">getAuth</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span></div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#ac5659a9c3232ab07ed1e81dd406187c1">   88</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#ac5659a9c3232ab07ed1e81dd406187c1">setOperationTimeoutSeconds</a>(<span class="keywordtype">int</span> timeout);</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span></div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a842576f768383a2434959ece2a039222">   93</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a842576f768383a2434959ece2a039222">getOperationTimeoutSeconds</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a7e83eb6526e98259023e93f0c89c1a61">  101</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a7e83eb6526e98259023e93f0c89c1a61">setIOThreads</a>(<span class="keywordtype">int</span> threads);</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span></div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a961eff6439a7aab387dca6a486f8535b">  106</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a961eff6439a7aab387dca6a486f8535b">getIOThreads</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span></div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a5c0d6ddb5e00afe43067505bd46a6a9d">  118</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a5c0d6ddb5e00afe43067505bd46a6a9d">setMessageListenerThreads</a>(<span class="keywordtype">int</span> threads);</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span></div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a95829d66c50c4226d79cc2fa835ba59a">  123</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a95829d66c50c4226d79cc2fa835ba59a">getMessageListenerThreads</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span></div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a9ae54146fe16f423faee853705043a0d">  133</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a9ae54146fe16f423faee853705043a0d">setConcurrentLookupRequest</a>(<span class="keywordtype">int</span> concurrentLookupRequest);</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span></div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#aacc5ce498af5ab4535ba3d5a39684b60">  138</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#aacc5ce498af5ab4535ba3d5a39684b60">getConcurrentLookupRequest</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span></div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#abcf3777ad94bee91b2f099a2f23e2033">  146</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#abcf3777ad94bee91b2f099a2f23e2033">setMaxLookupRedirects</a>(<span class="keywordtype">int</span> maxLookupRedirects);</div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span></div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#ac624ce5e221c79282392cf63f91b7f5d">  151</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#ac624ce5e221c79282392cf63f91b7f5d">getMaxLookupRedirects</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span></div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#aeb336cdb14093bb3626496a631e29441">  159</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#aeb336cdb14093bb3626496a631e29441">setInitialBackoffIntervalMs</a>(<span class="keywordtype">int</span> initialBackoffIntervalMs);</div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span></div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a0de6e5a822b7a3c6ab3f66f607e6891d">  164</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a0de6e5a822b7a3c6ab3f66f607e6891d">getInitialBackoffIntervalMs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span></div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a40d8e808b298b797c38bc2e57df43aa3">  172</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a40d8e808b298b797c38bc2e57df43aa3">setMaxBackoffIntervalMs</a>(<span class="keywordtype">int</span> maxBackoffIntervalMs);</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span></div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a7505a6277e8af2ee81468bdc349283ee">  177</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a7505a6277e8af2ee81468bdc349283ee">getMaxBackoffIntervalMs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span></div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a1bf72e7f2e263ed35ff631a379e7e562">  190</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a1bf72e7f2e263ed35ff631a379e7e562">setLogger</a>(<a class="code hl_class" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a>* loggerFactory);</div>
+<div class="line"><a id="l00191" name="l00191"></a><span class="lineno">  191</span></div>
+<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#ad2cd7f96ed00b4a398329cee24aa293c">  199</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#ad2cd7f96ed00b4a398329cee24aa293c">setUseTls</a>(<span class="keywordtype">bool</span> useTls);</div>
+<div class="line"><a id="l00200" name="l00200"></a><span class="lineno">  200</span></div>
+<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a564ce9a6a43fe2db6ac11cc7821b8c27">  204</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a564ce9a6a43fe2db6ac11cc7821b8c27">isUseTls</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span></div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a9a3462c57a542998b6324ba4144790c0">  211</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a9a3462c57a542998b6324ba4144790c0">setTlsPrivateKeyFilePath</a>(<span class="keyword">const</span> std::string&amp; tlsKeyFilePath);</div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span></div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a961555e096d6c7dfd599454b335069ca">  216</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a961555e096d6c7dfd599454b335069ca">getTlsPrivateKeyFilePath</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span></div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a9040f07538e832ea521cf37b1d00b5be">  223</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a9040f07538e832ea521cf37b1d00b5be">setTlsCertificateFilePath</a>(<span class="keyword">const</span> std::string&amp; tlsCertificateFilePath);</div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span></div>
+<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a499d79bdc68fb5b80709b3a794f682f5">  228</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a499d79bdc68fb5b80709b3a794f682f5">getTlsCertificateFilePath</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span></div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a65e807a8eb8d68b27ba464c3c026d5da">  235</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a65e807a8eb8d68b27ba464c3c026d5da">setTlsTrustCertsFilePath</a>(<span class="keyword">const</span> std::string&amp; tlsTrustCertsFilePath);</div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span></div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a2774b2a76b3ed18dc0429f5a6920d1e8">  240</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a2774b2a76b3ed18dc0429f5a6920d1e8">getTlsTrustCertsFilePath</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno">  241</span></div>
+<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a9c6de9ae9ffe25f93e45d52af33786c7">  249</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a9c6de9ae9ffe25f93e45d52af33786c7">setTlsAllowInsecureConnection</a>(<span class="keywordtype">bool</span> allowInsecure);</div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno">  250</span></div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a134473221c9e91f0c558a5c291aa9d5e">  254</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a134473221c9e91f0c558a5c291aa9d5e">isTlsAllowInsecureConnection</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00255" name="l00255"></a><span class="lineno">  255</span></div>
+<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a10233b86c33c352f79eb0dabf954809b">  269</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a10233b86c33c352f79eb0dabf954809b">setValidateHostName</a>(<span class="keywordtype">bool</span> validateHostName);</div>
+<div class="line"><a id="l00270" name="l00270"></a><span class="lineno">  270</span></div>
+<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#ae5646c0a8ffd63e9fbcb3a84704d3a10">  274</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#ae5646c0a8ffd63e9fbcb3a84704d3a10">isValidateHostName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00275" name="l00275"></a><span class="lineno">  275</span></div>
+<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#acb0c818a17629bb78d90bf8d174320fe">  281</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#acb0c818a17629bb78d90bf8d174320fe">setListenerName</a>(<span class="keyword">const</span> std::string&amp; listenerName);</div>
+<div class="line"><a id="l00282" name="l00282"></a><span class="lineno">  282</span></div>
+<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a290b94553eca37e1dddfc2fd48a0b704">  286</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a290b94553eca37e1dddfc2fd48a0b704">getListenerName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00287" name="l00287"></a><span class="lineno">  287</span></div>
+<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a0c7c63f49cd66554563c3f5e133c4fc6">  295</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a0c7c63f49cd66554563c3f5e133c4fc6">setStatsIntervalInSeconds</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp;);</div>
+<div class="line"><a id="l00296" name="l00296"></a><span class="lineno">  296</span></div>
+<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a3e86a2ec91591eea6faee445652f6c8b">  300</a></span>    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a3e86a2ec91591eea6faee445652f6c8b">getStatsIntervalInSeconds</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00301" name="l00301"></a><span class="lineno">  301</span></div>
+<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a5879c3ecf00ee0d1d85a1eea3977f6ba">  311</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a5879c3ecf00ee0d1d85a1eea3977f6ba">setPartititionsUpdateInterval</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> intervalInSeconds);</div>
+<div class="line"><a id="l00312" name="l00312"></a><span class="lineno">  312</span></div>
+<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a9b1c684c29b2c484853aaa025aa441cb">  316</a></span>    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a9b1c684c29b2c484853aaa025aa441cb">getPartitionsUpdateInterval</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00317" name="l00317"></a><span class="lineno">  317</span></div>
+<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a6d12355701aed4526560e5754312da53">  327</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a6d12355701aed4526560e5754312da53">setConnectionTimeout</a>(<span class="keywordtype">int</span> timeoutMs);</div>
+<div class="line"><a id="l00328" name="l00328"></a><span class="lineno">  328</span></div>
+<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a9205dfdb1cb7c0ffe76f2fc2a31f50de">  338</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a9205dfdb1cb7c0ffe76f2fc2a31f50de">setProxyServiceUrl</a>(<span class="keyword">const</span> std::string&amp; proxyServiceUrl);</div>
+<div class="line"><a id="l00339" name="l00339"></a><span class="lineno">  339</span> </div>
+<div class="line"><a id="l00340" name="l00340"></a><span class="lineno">  340</span>    <span class="keyword">const</span> std::string&amp; getProxyServiceUrl() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00341" name="l00341"></a><span class="lineno">  341</span></div>
+<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#ace1db02ebfa21f89ee887d8f8df7c180">  352</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#ace1db02ebfa21f89ee887d8f8df7c180">setProxyProtocol</a>(ProxyProtocol proxyProtocol);</div>
+<div class="line"><a id="l00353" name="l00353"></a><span class="lineno">  353</span> </div>
+<div class="line"><a id="l00354" name="l00354"></a><span class="lineno">  354</span>    ProxyProtocol getProxyProtocol() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00355" name="l00355"></a><span class="lineno">  355</span></div>
+<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#abcf01cb88d07e83c1b43abe14854dac2">  359</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#abcf01cb88d07e83c1b43abe14854dac2">getConnectionTimeout</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00360" name="l00360"></a><span class="lineno">  360</span></div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#aa60fd36396a4e5547e3fece1a7329efb">  367</a></span>    ClientConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#aa60fd36396a4e5547e3fece1a7329efb">setKeepAliveIntervalInSeconds</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> keepAliveIntervalInSeconds);</div>
+<div class="line"><a id="l00368" name="l00368"></a><span class="lineno">  368</span></div>
+<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html#a3f138f0594757549169e013372cd8f58">  372</a></span>    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_client_configuration.html#a3f138f0594757549169e013372cd8f58">getKeepAliveIntervalInSeconds</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00373" name="l00373"></a><span class="lineno">  373</span> </div>
+<div class="line"><a id="l00374" name="l00374"></a><span class="lineno">  374</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ClientImpl;</div>
+<div class="line"><a id="l00375" name="l00375"></a><span class="lineno">  375</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00376" name="l00376"></a><span class="lineno">  376</span> </div>
+<div class="line"><a id="l00377" name="l00377"></a><span class="lineno">  377</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00378" name="l00378"></a><span class="lineno">  378</span>    <span class="keyword">const</span> AuthenticationPtr&amp; getAuthPtr() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00379" name="l00379"></a><span class="lineno">  379</span>    std::shared_ptr&lt;ClientConfigurationImpl&gt; impl_;</div>
+<div class="line"><a id="l00380" name="l00380"></a><span class="lineno">  380</span> </div>
+<div class="line"><a id="l00381" name="l00381"></a><span class="lineno">  381</span>    <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 id="l00382" name="l00382"></a><span class="lineno">  382</span>    <span class="comment">// carried and saved by the broker. The client version string could be queried from the topic stats.</span></div>
+<div class="line"><a id="l00383" name="l00383"></a><span class="lineno">  383</span>    <span class="comment">//</span></div>
+<div class="line"><a id="l00384" name="l00384"></a><span class="lineno">  384</span>    <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 id="l00385" name="l00385"></a><span class="lineno">  385</span>    <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 id="l00386" name="l00386"></a><span class="lineno">  386</span>    <span class="comment">//</span></div>
+<div class="line"><a id="l00387" name="l00387"></a><span class="lineno">  387</span>    <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 id="l00388" name="l00388"></a><span class="lineno">  388</span>    <span class="comment">// string will be &quot;Pulsar-CPP-v3.2.0-forked&quot;.</span></div>
+<div class="line"><a id="l00389" name="l00389"></a><span class="lineno">  389</span>    <span class="comment">//</span></div>
+<div class="line"><a id="l00390" name="l00390"></a><span class="lineno">  390</span>    <span class="comment">// NOTE: This method should only be called by the PulsarWrapper and the length should not exceed 64.</span></div>
+<div class="line"><a id="l00391" name="l00391"></a><span class="lineno">  391</span>    <span class="comment">//</span></div>
+<div class="line"><a id="l00392" name="l00392"></a><span class="lineno">  392</span>    <span class="comment">// For example, you can add a PulsarWrapper class like:</span></div>
+<div class="line"><a id="l00393" name="l00393"></a><span class="lineno">  393</span>    <span class="comment">//</span></div>
+<div class="line"><a id="l00394" name="l00394"></a><span class="lineno">  394</span>    <span class="comment">// ```c++</span></div>
+<div class="line"><a id="l00395" name="l00395"></a><span class="lineno">  395</span>    <span class="comment">// namespace pulsar {</span></div>
+<div class="line"><a id="l00396" name="l00396"></a><span class="lineno">  396</span>    <span class="comment">// class PulsarWrapper {</span></div>
+<div class="line"><a id="l00397" name="l00397"></a><span class="lineno">  397</span>    <span class="comment">//     static ClientConfiguration clientConfig() {</span></div>
+<div class="line"><a id="l00398" name="l00398"></a><span class="lineno">  398</span>    <span class="comment">//         ClientConfiguration conf;</span></div>
+<div class="line"><a id="l00399" name="l00399"></a><span class="lineno">  399</span>    <span class="comment">//         conf.setDescription(&quot;forked&quot;);</span></div>
+<div class="line"><a id="l00400" name="l00400"></a><span class="lineno">  400</span>    <span class="comment">//         return conf;</span></div>
+<div class="line"><a id="l00401" name="l00401"></a><span class="lineno">  401</span>    <span class="comment">//     }</span></div>
+<div class="line"><a id="l00402" name="l00402"></a><span class="lineno">  402</span>    <span class="comment">// };</span></div>
+<div class="line"><a id="l00403" name="l00403"></a><span class="lineno">  403</span>    <span class="comment">// }</span></div>
+<div class="line"><a id="l00404" name="l00404"></a><span class="lineno">  404</span>    <span class="comment">// ```</span></div>
+<div class="line"><a id="l00405" name="l00405"></a><span class="lineno">  405</span>    <span class="comment">//</span></div>
+<div class="line"><a id="l00406" name="l00406"></a><span class="lineno">  406</span>    <span class="comment">// Then, call the method before passing the `conf` to the constructor of `Client`:</span></div>
+<div class="line"><a id="l00407" name="l00407"></a><span class="lineno">  407</span>    <span class="comment">//</span></div>
+<div class="line"><a id="l00408" name="l00408"></a><span class="lineno">  408</span>    <span class="comment">// ```c++</span></div>
+<div class="line"><a id="l00409" name="l00409"></a><span class="lineno">  409</span>    <span class="comment">// auto conf = PulsarWrapper::clientConfig();</span></div>
+<div class="line"><a id="l00410" name="l00410"></a><span class="lineno">  410</span>    <span class="comment">// // Set other attributes of `conf` here...</span></div>
+<div class="line"><a id="l00411" name="l00411"></a><span class="lineno">  411</span>    <span class="comment">// Client client{&quot;pulsar://localhost:6650&quot;, conf);</span></div>
+<div class="line"><a id="l00412" name="l00412"></a><span class="lineno">  412</span>    <span class="comment">// ```</span></div>
+<div class="line"><a id="l00413" name="l00413"></a><span class="lineno">  413</span>    ClientConfiguration&amp; setDescription(<span class="keyword">const</span> std::string&amp; description);</div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno">  414</span> </div>
+<div class="line"><a id="l00415" name="l00415"></a><span class="lineno">  415</span>    <span class="keyword">const</span> std::string&amp; getDescription() const noexcept;</div>
+<div class="line"><a id="l00416" name="l00416"></a><span class="lineno">  416</span>};</div>
+</div>
+<div class="line"><a id="l00417" name="l00417"></a><span class="lineno">  417</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00418" name="l00418"></a><span class="lineno">  418</span> </div>
+<div class="line"><a id="l00419" name="l00419"></a><span class="lineno">  419</span><span class="preprocessor">#endif </span><span class="comment">/* PULSAR_CLIENTCONFIGURATION_H_ */</span><span class="preprocessor"></span></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_client_configuration_html_a0405e2db9228972cfbc972b3f550d8ad"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a0405e2db9228972cfbc972b3f550d8ad">pulsar::ClientConfiguration::getConnectionsPerBroker</a></div><div class="ttdeci">int getConnectionsPerBroker() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a0c7c63f49cd66554563c3f5e133c4fc6"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a0c7c63f49cd66554563c3f5e133c4fc6">pulsar::ClientConfiguration::setStatsIntervalInSeconds</a></div><div class="ttdeci">ClientConfiguration &amp; setStatsIntervalInSeconds(const unsigned int &amp;)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a0de6e5a822b7a3c6ab3f66f607e6891d"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a0de6e5a822b7a3c6ab3f66f607e6891d">pulsar::ClientConfiguration::getInitialBackoffIntervalMs</a></div><div class="ttdeci">int getInitialBackoffIntervalMs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a10233b86c33c352f79eb0dabf954809b"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a10233b86c33c352f79eb0dabf954809b">pulsar::ClientConfiguration::setValidateHostName</a></div><div class="ttdeci">ClientConfiguration &amp; setValidateHostName(bool validateHostName)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a134473221c9e91f0c558a5c291aa9d5e"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a134473221c9e91f0c558a5c291aa9d5e">pulsar::ClientConfiguration::isTlsAllowInsecureConnection</a></div><div class="ttdeci">bool isTlsAllowInsecureConnection() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a1bf72e7f2e263ed35ff631a379e7e562"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a1bf72e7f2e263ed35ff631a379e7e562">pulsar::ClientConfiguration::setLogger</a></div><div class="ttdeci">ClientConfiguration &amp; setLogger(LoggerFactory *loggerFactory)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a2774b2a76b3ed18dc0429f5a6920d1e8"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a2774b2a76b3ed18dc0429f5a6920d1e8">pulsar::ClientConfiguration::getTlsTrustCertsFilePath</a></div><div class="ttdeci">const std::string &amp; getTlsTrustCertsFilePath() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a283f6a724a4fdd8fa1def661e253eafb"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a283f6a724a4fdd8fa1def661e253eafb">pulsar::ClientConfiguration::setAuth</a></div><div class="ttdeci">ClientConfiguration &amp; setAuth(const AuthenticationPtr &amp;authentication)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a290b94553eca37e1dddfc2fd48a0b704"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a290b94553eca37e1dddfc2fd48a0b704">pulsar::ClientConfiguration::getListenerName</a></div><div class="ttdeci">const std::string &amp; getListenerName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a2973aed4fed3479aeceef9e97d26ef63"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a2973aed4fed3479aeceef9e97d26ef63">pulsar::ClientConfiguration::getAuth</a></div><div class="ttdeci">Authentication &amp; getAuth() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a3a2246877634534eb3163ed45221a6f5"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a3a2246877634534eb3163ed45221a6f5">pulsar::ClientConfiguration::setConnectionsPerBroker</a></div><div class="ttdeci">ClientConfiguration &amp; setConnectionsPerBroker(int connectionsPerBroker)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a3e86a2ec91591eea6faee445652f6c8b"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a3e86a2ec91591eea6faee445652f6c8b">pulsar::ClientConfiguration::getStatsIntervalInSeconds</a></div><div class="ttdeci">const unsigned int &amp; getStatsIntervalInSeconds() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a3f138f0594757549169e013372cd8f58"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a3f138f0594757549169e013372cd8f58">pulsar::ClientConfiguration::getKeepAliveIntervalInSeconds</a></div><div class="ttdeci">unsigned int getKeepAliveIntervalInSeconds() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a40d8e808b298b797c38bc2e57df43aa3"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a40d8e808b298b797c38bc2e57df43aa3">pulsar::ClientConfiguration::setMaxBackoffIntervalMs</a></div><div class="ttdeci">ClientConfiguration &amp; setMaxBackoffIntervalMs(int maxBackoffIntervalMs)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a499d79bdc68fb5b80709b3a794f682f5"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a499d79bdc68fb5b80709b3a794f682f5">pulsar::ClientConfiguration::getTlsCertificateFilePath</a></div><div class="ttdeci">const std::string &amp; getTlsCertificateFilePath() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a564ce9a6a43fe2db6ac11cc7821b8c27"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a564ce9a6a43fe2db6ac11cc7821b8c27">pulsar::ClientConfiguration::isUseTls</a></div><div class="ttdeci">bool isUseTls() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a5879c3ecf00ee0d1d85a1eea3977f6ba"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a5879c3ecf00ee0d1d85a1eea3977f6ba">pulsar::ClientConfiguration::setPartititionsUpdateInterval</a></div><div class="ttdeci">ClientConfiguration &amp; setPartititionsUpdateInterval(unsigned int intervalInSeconds)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a5c0d6ddb5e00afe43067505bd46a6a9d"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a5c0d6ddb5e00afe43067505bd46a6a9d">pulsar::ClientConfiguration::setMessageListenerThreads</a></div><div class="ttdeci">ClientConfiguration &amp; setMessageListenerThreads(int threads)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a65e807a8eb8d68b27ba464c3c026d5da"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a65e807a8eb8d68b27ba464c3c026d5da">pulsar::ClientConfiguration::setTlsTrustCertsFilePath</a></div><div class="ttdeci">ClientConfiguration &amp; setTlsTrustCertsFilePath(const std::string &amp;tlsTrustCertsFilePath)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a6d12355701aed4526560e5754312da53"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a6d12355701aed4526560e5754312da53">pulsar::ClientConfiguration::setConnectionTimeout</a></div><div class="ttdeci">ClientConfiguration &amp; setConnectionTimeout(int timeoutMs)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a7505a6277e8af2ee81468bdc349283ee"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a7505a6277e8af2ee81468bdc349283ee">pulsar::ClientConfiguration::getMaxBackoffIntervalMs</a></div><div class="ttdeci">int getMaxBackoffIntervalMs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a7e83eb6526e98259023e93f0c89c1a61"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a7e83eb6526e98259023e93f0c89c1a61">pulsar::ClientConfiguration::setIOThreads</a></div><div class="ttdeci">ClientConfiguration &amp; setIOThreads(int threads)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a842576f768383a2434959ece2a039222"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a842576f768383a2434959ece2a039222">pulsar::ClientConfiguration::getOperationTimeoutSeconds</a></div><div class="ttdeci">int getOperationTimeoutSeconds() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a9040f07538e832ea521cf37b1d00b5be"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a9040f07538e832ea521cf37b1d00b5be">pulsar::ClientConfiguration::setTlsCertificateFilePath</a></div><div class="ttdeci">ClientConfiguration &amp; setTlsCertificateFilePath(const std::string &amp;tlsCertificateFilePath)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a9205dfdb1cb7c0ffe76f2fc2a31f50de"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a9205dfdb1cb7c0ffe76f2fc2a31f50de">pulsar::ClientConfiguration::setProxyServiceUrl</a></div><div class="ttdeci">ClientConfiguration &amp; setProxyServiceUrl(const std::string &amp;proxyServiceUrl)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a95829d66c50c4226d79cc2fa835ba59a"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a95829d66c50c4226d79cc2fa835ba59a">pulsar::ClientConfiguration::getMessageListenerThreads</a></div><div class="ttdeci">int getMessageListenerThreads() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a961555e096d6c7dfd599454b335069ca"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a961555e096d6c7dfd599454b335069ca">pulsar::ClientConfiguration::getTlsPrivateKeyFilePath</a></div><div class="ttdeci">const std::string &amp; getTlsPrivateKeyFilePath() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a961eff6439a7aab387dca6a486f8535b"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a961eff6439a7aab387dca6a486f8535b">pulsar::ClientConfiguration::getIOThreads</a></div><div class="ttdeci">int getIOThreads() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a9a3462c57a542998b6324ba4144790c0"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a9a3462c57a542998b6324ba4144790c0">pulsar::ClientConfiguration::setTlsPrivateKeyFilePath</a></div><div class="ttdeci">ClientConfiguration &amp; setTlsPrivateKeyFilePath(const std::string &amp;tlsKeyFilePath)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a9ae54146fe16f423faee853705043a0d"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a9ae54146fe16f423faee853705043a0d">pulsar::ClientConfiguration::setConcurrentLookupRequest</a></div><div class="ttdeci">ClientConfiguration &amp; setConcurrentLookupRequest(int concurrentLookupRequest)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a9b1c684c29b2c484853aaa025aa441cb"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a9b1c684c29b2c484853aaa025aa441cb">pulsar::ClientConfiguration::getPartitionsUpdateInterval</a></div><div class="ttdeci">unsigned int getPartitionsUpdateInterval() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_a9c6de9ae9ffe25f93e45d52af33786c7"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#a9c6de9ae9ffe25f93e45d52af33786c7">pulsar::ClientConfiguration::setTlsAllowInsecureConnection</a></div><div class="ttdeci">ClientConfiguration &amp; setTlsAllowInsecureConnection(bool allowInsecure)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_aa09cf22a285653ce9a551e85342dff49"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#aa09cf22a285653ce9a551e85342dff49">pulsar::ClientConfiguration::getMemoryLimit</a></div><div class="ttdeci">uint64_t getMemoryLimit() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_aa60fd36396a4e5547e3fece1a7329efb"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#aa60fd36396a4e5547e3fece1a7329efb">pulsar::ClientConfiguration::setKeepAliveIntervalInSeconds</a></div><div class="ttdeci">ClientConfiguration &amp; setKeepAliveIntervalInSeconds(unsigned int keepAliveIntervalInSeconds)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_aacc5ce498af5ab4535ba3d5a39684b60"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#aacc5ce498af5ab4535ba3d5a39684b60">pulsar::ClientConfiguration::getConcurrentLookupRequest</a></div><div class="ttdeci">int getConcurrentLookupRequest() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_abcf01cb88d07e83c1b43abe14854dac2"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#abcf01cb88d07e83c1b43abe14854dac2">pulsar::ClientConfiguration::getConnectionTimeout</a></div><div class="ttdeci">int getConnectionTimeout() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_abcf3777ad94bee91b2f099a2f23e2033"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#abcf3777ad94bee91b2f099a2f23e2033">pulsar::ClientConfiguration::setMaxLookupRedirects</a></div><div class="ttdeci">ClientConfiguration &amp; setMaxLookupRedirects(int maxLookupRedirects)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_ac5659a9c3232ab07ed1e81dd406187c1"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#ac5659a9c3232ab07ed1e81dd406187c1">pulsar::ClientConfiguration::setOperationTimeoutSeconds</a></div><div class="ttdeci">ClientConfiguration &amp; setOperationTimeoutSeconds(int timeout)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_ac624ce5e221c79282392cf63f91b7f5d"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#ac624ce5e221c79282392cf63f91b7f5d">pulsar::ClientConfiguration::getMaxLookupRedirects</a></div><div class="ttdeci">int getMaxLookupRedirects() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_acb0c818a17629bb78d90bf8d174320fe"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#acb0c818a17629bb78d90bf8d174320fe">pulsar::ClientConfiguration::setListenerName</a></div><div class="ttdeci">ClientConfiguration &amp; setListenerName(const std::string &amp;listenerName)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_ace1db02ebfa21f89ee887d8f8df7c180"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#ace1db02ebfa21f89ee887d8f8df7c180">pulsar::ClientConfiguration::setProxyProtocol</a></div><div class="ttdeci">ClientConfiguration &amp; setProxyProtocol(ProxyProtocol proxyProtocol)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_ace74b6344c19c7039087be76d86528f6"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#ace74b6344c19c7039087be76d86528f6">pulsar::ClientConfiguration::setMemoryLimit</a></div><div class="ttdeci">ClientConfiguration &amp; setMemoryLimit(uint64_t memoryLimitBytes)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_ad2cd7f96ed00b4a398329cee24aa293c"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#ad2cd7f96ed00b4a398329cee24aa293c">pulsar::ClientConfiguration::setUseTls</a></div><div class="ttdeci">ClientConfiguration &amp; setUseTls(bool useTls)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_ae5646c0a8ffd63e9fbcb3a84704d3a10"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#ae5646c0a8ffd63e9fbcb3a84704d3a10">pulsar::ClientConfiguration::isValidateHostName</a></div><div class="ttdeci">bool isValidateHostName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html_aeb336cdb14093bb3626496a631e29441"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html#aeb336cdb14093bb3626496a631e29441">pulsar::ClientConfiguration::setInitialBackoffIntervalMs</a></div><div class="ttdeci">ClientConfiguration &amp; setInitialBackoffIntervalMs(int initialBackoffIntervalMs)</div></div>
+<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="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition</b> Authentication.h:31</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_compression_type_8h_source.html b/static/api/cpp/4.0.x/_compression_type_8h_source.html
new file mode 100644
index 00000000000..107e3d9d747
--- /dev/null
+++ b/static/api/cpp/4.0.x/_compression_type_8h_source.html
@@ -0,0 +1,108 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_COMPRESSIONTYPE_H_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_COMPRESSIONTYPE_H_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="keyword">enum</span> CompressionType : std::uint8_t</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>{</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>    CompressionNone = 0,</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>    CompressionLZ4 = 1,</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>    CompressionZLib = 2,</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    CompressionZSTD = 3,</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    CompressionSNAPPY = 4</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>};</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>}</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="preprocessor">#endif </span><span class="comment">/* PULSAR_COMPRESSIONTYPE_H_ */</span><span class="preprocessor"></span></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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_console_logger_factory_8h_source.html b/static/api/cpp/4.0.x/_console_logger_factory_8h_source.html
new file mode 100644
index 00000000000..225e7388d6e
--- /dev/null
+++ b/static/api/cpp/4.0.x/_console_logger_factory_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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/Logger.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">class </span>ConsoleLoggerFactoryImpl;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span></div>
+<div class="foldopen" id="foldopen00051" data-start="{" data-end="};">
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="classpulsar_1_1_console_logger_factory.html">   51</a></span><span class="keyword">class </span>PULSAR_PUBLIC ConsoleLoggerFactory : <span class="keyword">public</span> <a class="code hl_class" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a> {</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>    <span class="keyword">explicit</span> ConsoleLoggerFactory(Logger::Level level = Logger::LEVEL_INFO);</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span> </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>    ~ConsoleLoggerFactory();</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span> </div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="classpulsar_1_1_console_logger_factory.html#a4592e252660038c303b4e71a44da9275">   57</a></span>    <a class="code hl_class" href="classpulsar_1_1_logger.html">Logger</a>* <a class="code hl_function" href="classpulsar_1_1_console_logger_factory.html#a4592e252660038c303b4e71a44da9275">getLogger</a>(<span class="keyword">const</span> std::string&amp; fileName) <span class="keyword">override</span>;</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span> </div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>    std::unique_ptr&lt;ConsoleLoggerFactoryImpl&gt; impl_;</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>};</div>
+</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span> </div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="ttc" id="aclasspulsar_1_1_console_logger_factory_html_a4592e252660038c303b4e71a44da9275"><div class="ttname"><a href="classpulsar_1_1_console_logger_factory.html#a4592e252660038c303b4e71a44da9275">pulsar::ConsoleLoggerFactory::getLogger</a></div><div class="ttdeci">Logger * getLogger(const std::string &amp;fileName) override</div></div>
+<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>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_consumer_8h_source.html b/static/api/cpp/4.0.x/_consumer_8h_source.html
new file mode 100644
index 00000000000..6fcb55a5435
--- /dev/null
+++ b/static/api/cpp/4.0.x/_consumer_8h_source.html
@@ -0,0 +1,267 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef CONSUMER_HPP_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define CONSUMER_HPP_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/BrokerConsumerStats.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/ConsumerConfiguration.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/TypedMessage.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;iostream&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="keyword">class </span>ConsumerImplBase;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keyword">typedef</span> std::shared_ptr&lt;ConsumerImplBase&gt; ConsumerImplBasePtr;</div>
+<div class="foldopen" id="foldopen00037" data-start="{" data-end="};">
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html">   37</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_function" href="classpulsar_1_1_consumer.html#afe59503d5d5309f38d4e246bd9f435b4">Consumer</a> {</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#afe59503d5d5309f38d4e246bd9f435b4">   42</a></span>    <a class="code hl_function" href="classpulsar_1_1_consumer.html#afe59503d5d5309f38d4e246bd9f435b4">Consumer</a>();</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>    <span class="keyword">virtual</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#afe59503d5d5309f38d4e246bd9f435b4">~Consumer</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#ad55d95cd75501562d8ae6d83935d5977">   48</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_consumer.html#ad55d95cd75501562d8ae6d83935d5977">getTopic</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span></div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#af6049caaf3e1f8bc91d4dc52b02ab7d1">   53</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_consumer.html#af6049caaf3e1f8bc91d4dc52b02ab7d1">getSubscriptionName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span></div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a83f58a6118a693398c16e70cecac0303">   58</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_consumer.html#a83f58a6118a693398c16e70cecac0303">getConsumerName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span></div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a542ca0a9473a03ccf8bd8aeed24de490">   73</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a542ca0a9473a03ccf8bd8aeed24de490">unsubscribe</a>();</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span></div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a2a3a5c0ca53537d6c2aeecbc9d850e6a">   86</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a2a3a5c0ca53537d6c2aeecbc9d850e6a">unsubscribeAsync</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>&amp; callbac [...]
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span></div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#abc8cec6e81c582c6af8e3d931e41a2ad">   98</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#abc8cec6e81c582c6af8e3d931e41a2ad">receive</a>(<a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; msg);</div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#abc8cec6e81c582c6af8e3d931e41a2ad">receive</a>(<a class="code hl_class" href="classpulsar_1_1_typed_message.html">TypedMessage&lt;T&gt;</a>&amp; msg, <span class="keyword">typename</span> TypedMessage&lt;T&gt;::Decoder decoder) {</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span>        <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a> rawMsg;</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span>        <span class="keyword">auto</span> result = <a class="code hl_function" href="classpulsar_1_1_consumer.html#abc8cec6e81c582c6af8e3d931e41a2ad">receive</a>(rawMsg);</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>        msg = <a class="code hl_class" href="classpulsar_1_1_typed_message.html">TypedMessage&lt;T&gt;</a>{rawMsg, decoder};</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span>        <span class="keywordflow">return</span> result;</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>    }</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span></div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#ace9475b70f37c91df5b442f41058370e">  116</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#ace9475b70f37c91df5b442f41058370e">receive</a>(<a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; msg, <span class="ke [...]
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span> </div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span>    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#abc8cec6e81c582c6af8e3d931e41a2ad">receive</a>(<a class="code hl_class" href="classpulsar_1_1_typed_message.html">TypedMessage&lt;T&gt;</a>&amp; msg, <span class="keywordtype">int</span> timeoutMs, <span class="keyword">typename</span>  [...]
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span>        <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a> rawMsg;</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>        <span class="keyword">auto</span> result = <a class="code hl_function" href="classpulsar_1_1_consumer.html#abc8cec6e81c582c6af8e3d931e41a2ad">receive</a>(rawMsg, timeoutMs);</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span>        msg = <a class="code hl_class" href="classpulsar_1_1_typed_message.html">TypedMessage&lt;T&gt;</a>{rawMsg, decoder};</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span>        <span class="keywordflow">return</span> result;</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span>    }</div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span></div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a99703b58b62320701220041473f6a268">  137</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a99703b58b62320701220041473f6a268">receiveAsync</a>(<span class="keyword">const</span> ReceiveCallback&amp; callback);</div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno">  138</span> </div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span>    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a99703b58b62320701220041473f6a268">receiveAsync</a>(<span class="keyword">const</span> std::function&lt;<span class="keywordtype">void</span>(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> result, <span class="keyword">const</span> <a class="cod [...]
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno">  141</span>                      <span class="keyword">typename</span> TypedMessage&lt;T&gt;::Decoder decoder) {</div>
+<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span>        <a class="code hl_function" href="classpulsar_1_1_consumer.html#a99703b58b62320701220041473f6a268">receiveAsync</a>([callback, decoder](<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> result, <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; msg) {</div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno">  143</span>            callback(result, <a class="code hl_class" href="classpulsar_1_1_typed_message.html">TypedMessage&lt;T&gt;</a>{msg, decoder});</div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span>        });</div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span>    }</div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span></div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a49c846a386d778df94a1439982be5cbd">  157</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a49c846a386d778df94a1439982be5cbd">batchReceive</a>(<a class="code hl_typedef" href="namespacepulsar.html#ac87806090d752fb2248e8da65727630a">Mess [...]
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno">  158</span></div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#ac13f007e453e3cc8ef36eb1dc43cb431">  170</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#ac13f007e453e3cc8ef36eb1dc43cb431">batchReceiveAsync</a>(<span class="keyword">const</span> BatchReceiveCallback&amp; callback);</div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span></div>
+<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a3c3eb5056f228d281798f9ea75f52af9">  183</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a3c3eb5056f228d281798f9ea75f52af9">acknowledge</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html [...]
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span></div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#aed10e043835e50d8129e6adecd91da72">  195</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#aed10e043835e50d8129e6adecd91da72">acknowledge</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.h [...]
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span></div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a57fd2c53a44ea53262742d90ff11e0fd">  201</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a57fd2c53a44ea53262742d90ff11e0fd">acknowledge</a>(<span class="keyword">const</span> MessageIdList&amp; messageIdList);</div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span></div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a03898cea6e3f07684b78cb8d9c91741c">  212</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a03898cea6e3f07684b78cb8d9c91741c">acknowledgeAsync</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; message, <span class="keyword">const</span [...]
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span></div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a5ce95d023c261c0df66ae867f46e6bf9">  223</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a5ce95d023c261c0df66ae867f46e6bf9">acknowledgeAsync</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageId, <span class="keyword">cons [...]
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span></div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#aeba1b5d159432bc9d72dba2e6be1b8ac">  231</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#aeba1b5d159432bc9d72dba2e6be1b8ac">acknowledgeAsync</a>(<span class="keyword">const</span> MessageIdList&amp; messageIdList, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacepulsar.ht [...]
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno">  232</span></div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a3eb0b0db2da0628da15d3f242e254f6d">  250</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a3eb0b0db2da0628da15d3f242e254f6d">acknowledgeCumulative</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_me [...]
+<div class="line"><a id="l00251" name="l00251"></a><span class="lineno">  251</span></div>
+<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a79558de7435fd0b6ca0bde84f3061822">  268</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a79558de7435fd0b6ca0bde84f3061822">acknowledgeCumulative</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_me [...]
+<div class="line"><a id="l00269" name="l00269"></a><span class="lineno">  269</span></div>
+<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a9595ca8b28b2986e0fca503af4d4a5d7">  280</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a9595ca8b28b2986e0fca503af4d4a5d7">acknowledgeCumulativeAsync</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; message, <span class="keyword">c [...]
+<div class="line"><a id="l00281" name="l00281"></a><span class="lineno">  281</span></div>
+<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#ab02b777ce0286f4450a3429c4daed86d">  292</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#ab02b777ce0286f4450a3429c4daed86d">acknowledgeCumulativeAsync</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageId, <span class="key [...]
+<div class="line"><a id="l00293" name="l00293"></a><span class="lineno">  293</span></div>
+<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a3cd227d9be2ae090c3a55bcdfff1df69">  324</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a3cd227d9be2ae090c3a55bcdfff1df69">negativeAcknowledge</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; message);</div>
+<div class="line"><a id="l00325" name="l00325"></a><span class="lineno">  325</span></div>
+<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#afd631d1c357bc0284afe3e0cd2acbd6e">  356</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#afd631d1c357bc0284afe3e0cd2acbd6e">negativeAcknowledge</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageId);</div>
+<div class="line"><a id="l00357" name="l00357"></a><span class="lineno">  357</span></div>
+<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a8b01803221c283e4df21715aeb024b84">  361</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a8b01803221c283e4df21715aeb024b84">close</a>();</div>
+<div class="line"><a id="l00362" name="l00362"></a><span class="lineno">  362</span></div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a58fd2875d7a3a4239c0b13e782ca55f8">  367</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a58fd2875d7a3a4239c0b13e782ca55f8">closeAsync</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>&amp; callback);</div>
+<div class="line"><a id="l00368" name="l00368"></a><span class="lineno">  368</span></div>
+<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a7370b7a19a08fdff5b044e74ad8bd679">  372</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a7370b7a19a08fdff5b044e74ad8bd679">pauseMessageListener</a>();</div>
+<div class="line"><a id="l00373" name="l00373"></a><span class="lineno">  373</span></div>
+<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a02a9a412f1aa7f1ec8dc0c0134315b66">  378</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a02a9a412f1aa7f1ec8dc0c0134315b66">resumeMessageListener</a>();</div>
+<div class="line"><a id="l00379" name="l00379"></a><span class="lineno">  379</span></div>
+<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a3d60ee12b0e9766d60c3a8e08a61287a">  389</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a3d60ee12b0e9766d60c3a8e08a61287a">redeliverUnacknowledgedMessages</a>();</div>
+<div class="line"><a id="l00390" name="l00390"></a><span class="lineno">  390</span></div>
+<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a617639e11e05ecba3d013d831578d19d">  403</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a617639e11e05ecba3d013d831578d19d">getBrokerConsumerStats</a>(<a class="code hl_class" href="classpulsar_1_1_broker_consumer_stats.html">BrokerCo [...]
+<div class="line"><a id="l00404" name="l00404"></a><span class="lineno">  404</span></div>
+<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a13515d5c407816afa06099663de17d7d">  416</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a13515d5c407816afa06099663de17d7d">getBrokerConsumerStatsAsync</a>(<span class="keyword">const</span> BrokerConsumerStatsCallback&amp; callback);</div>
+<div class="line"><a id="l00417" name="l00417"></a><span class="lineno">  417</span></div>
+<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a45800c18df817caabe6cd9c21e7d72b3">  428</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a45800c18df817caabe6cd9c21e7d72b3">seek</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">Me [...]
+<div class="line"><a id="l00429" name="l00429"></a><span class="lineno">  429</span></div>
+<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#ae6835e612b61795a13eff5fd2da85a0e">  436</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#ae6835e612b61795a13eff5fd2da85a0e">seek</a>(uint64_t timestamp);</div>
+<div class="line"><a id="l00437" name="l00437"></a><span class="lineno">  437</span></div>
+<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a2353c67cc423caefb35490278a07d339">  448</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a2353c67cc423caefb35490278a07d339">seekAsync</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; message [...]
+<div class="line"><a id="l00449" name="l00449"></a><span class="lineno">  449</span></div>
+<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a80828a506f7150b68d2a27ebe7502b2f">  456</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a80828a506f7150b68d2a27ebe7502b2f">seekAsync</a>(uint64_t timestamp, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacepulsar.html#ae5bf6401bfa8e39 [...]
+<div class="line"><a id="l00457" name="l00457"></a><span class="lineno">  457</span></div>
+<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a95a69d39ec2c8714b6ffce0f6ab74a55">  461</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a95a69d39ec2c8714b6ffce0f6ab74a55">isConnected</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00462" name="l00462"></a><span class="lineno">  462</span></div>
+<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#a637bd62a5d63ea06b3f1ddb976d1459c">  467</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#a637bd62a5d63ea06b3f1ddb976d1459c">getLastMessageIdAsync</a>(<span class="keyword">const</span> GetLastMessageIdCallback&amp; callback);</div>
+<div class="line"><a id="l00468" name="l00468"></a><span class="lineno">  468</span></div>
+<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer.html#af60a7e87b76e5c69ee0e14f6ec902908">  472</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_consumer.html#af60a7e87b76e5c69ee0e14f6ec902908">getLastMessageId</a>(<a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messag [...]
+<div class="line"><a id="l00473" name="l00473"></a><span class="lineno">  473</span> </div>
+<div class="line"><a id="l00474" name="l00474"></a><span class="lineno">  474</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00475" name="l00475"></a><span class="lineno">  475</span>    ConsumerImplBasePtr impl_;</div>
+<div class="line"><a id="l00476" name="l00476"></a><span class="lineno">  476</span>    <span class="keyword">explicit</span> <a class="code hl_function" href="classpulsar_1_1_consumer.html#afe59503d5d5309f38d4e246bd9f435b4">Consumer</a>(ConsumerImplBasePtr);</div>
+<div class="line"><a id="l00477" name="l00477"></a><span class="lineno">  477</span> </div>
+<div class="line"><a id="l00478" name="l00478"></a><span class="lineno">  478</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a id="l00479" name="l00479"></a><span class="lineno">  479</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00480" name="l00480"></a><span class="lineno">  480</span>    <span class="keyword">friend</span> <span class="keyword">class </span>MultiTopicsConsumerImpl;</div>
+<div class="line"><a id="l00481" name="l00481"></a><span class="lineno">  481</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ConsumerImpl;</div>
+<div class="line"><a id="l00482" name="l00482"></a><span class="lineno">  482</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ClientImpl;</div>
+<div class="line"><a id="l00483" name="l00483"></a><span class="lineno">  483</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ConsumerTest;</div>
+<div class="line"><a id="l00484" name="l00484"></a><span class="lineno">  484</span>};</div>
+</div>
+<div class="line"><a id="l00485" name="l00485"></a><span class="lineno">  485</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00486" name="l00486"></a><span class="lineno">  486</span> </div>
+<div class="line"><a id="l00487" name="l00487"></a><span class="lineno">  487</span><span class="preprocessor">#endif </span><span class="comment">/* CONSUMER_HPP_ */</span><span class="preprocessor"></span></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="aclasspulsar_1_1_consumer_html_a02a9a412f1aa7f1ec8dc0c0134315b66"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a02a9a412f1aa7f1ec8dc0c0134315b66">pulsar::Consumer::resumeMessageListener</a></div><div class="ttdeci">Result resumeMessageListener()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a03898cea6e3f07684b78cb8d9c91741c"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a03898cea6e3f07684b78cb8d9c91741c">pulsar::Consumer::acknowledgeAsync</a></div><div class="ttdeci">void acknowledgeAsync(const Message &amp;message, const ResultCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a13515d5c407816afa06099663de17d7d"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a13515d5c407816afa06099663de17d7d">pulsar::Consumer::getBrokerConsumerStatsAsync</a></div><div class="ttdeci">void getBrokerConsumerStatsAsync(const BrokerConsumerStatsCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a2353c67cc423caefb35490278a07d339"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a2353c67cc423caefb35490278a07d339">pulsar::Consumer::seekAsync</a></div><div class="ttdeci">virtual void seekAsync(const MessageId &amp;messageId, const ResultCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a2a3a5c0ca53537d6c2aeecbc9d850e6a"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a2a3a5c0ca53537d6c2aeecbc9d850e6a">pulsar::Consumer::unsubscribeAsync</a></div><div class="ttdeci">void unsubscribeAsync(const ResultCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a3c3eb5056f228d281798f9ea75f52af9"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a3c3eb5056f228d281798f9ea75f52af9">pulsar::Consumer::acknowledge</a></div><div class="ttdeci">Result acknowledge(const Message &amp;message)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a3cd227d9be2ae090c3a55bcdfff1df69"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a3cd227d9be2ae090c3a55bcdfff1df69">pulsar::Consumer::negativeAcknowledge</a></div><div class="ttdeci">void negativeAcknowledge(const Message &amp;message)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a3d60ee12b0e9766d60c3a8e08a61287a"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a3d60ee12b0e9766d60c3a8e08a61287a">pulsar::Consumer::redeliverUnacknowledgedMessages</a></div><div class="ttdeci">void redeliverUnacknowledgedMessages()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a3eb0b0db2da0628da15d3f242e254f6d"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a3eb0b0db2da0628da15d3f242e254f6d">pulsar::Consumer::acknowledgeCumulative</a></div><div class="ttdeci">Result acknowledgeCumulative(const Message &amp;message)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a45800c18df817caabe6cd9c21e7d72b3"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a45800c18df817caabe6cd9c21e7d72b3">pulsar::Consumer::seek</a></div><div class="ttdeci">Result seek(const MessageId &amp;messageId)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a49c846a386d778df94a1439982be5cbd"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a49c846a386d778df94a1439982be5cbd">pulsar::Consumer::batchReceive</a></div><div class="ttdeci">Result batchReceive(Messages &amp;msgs)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a542ca0a9473a03ccf8bd8aeed24de490"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a542ca0a9473a03ccf8bd8aeed24de490">pulsar::Consumer::unsubscribe</a></div><div class="ttdeci">Result unsubscribe()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a57fd2c53a44ea53262742d90ff11e0fd"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a57fd2c53a44ea53262742d90ff11e0fd">pulsar::Consumer::acknowledge</a></div><div class="ttdeci">Result acknowledge(const MessageIdList &amp;messageIdList)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a58fd2875d7a3a4239c0b13e782ca55f8"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a58fd2875d7a3a4239c0b13e782ca55f8">pulsar::Consumer::closeAsync</a></div><div class="ttdeci">void closeAsync(const ResultCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a5ce95d023c261c0df66ae867f46e6bf9"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a5ce95d023c261c0df66ae867f46e6bf9">pulsar::Consumer::acknowledgeAsync</a></div><div class="ttdeci">void acknowledgeAsync(const MessageId &amp;messageId, const ResultCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a617639e11e05ecba3d013d831578d19d"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a617639e11e05ecba3d013d831578d19d">pulsar::Consumer::getBrokerConsumerStats</a></div><div class="ttdeci">Result getBrokerConsumerStats(BrokerConsumerStats &amp;brokerConsumerStats)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a637bd62a5d63ea06b3f1ddb976d1459c"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a637bd62a5d63ea06b3f1ddb976d1459c">pulsar::Consumer::getLastMessageIdAsync</a></div><div class="ttdeci">void getLastMessageIdAsync(const GetLastMessageIdCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a7370b7a19a08fdff5b044e74ad8bd679"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a7370b7a19a08fdff5b044e74ad8bd679">pulsar::Consumer::pauseMessageListener</a></div><div class="ttdeci">Result pauseMessageListener()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a79558de7435fd0b6ca0bde84f3061822"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a79558de7435fd0b6ca0bde84f3061822">pulsar::Consumer::acknowledgeCumulative</a></div><div class="ttdeci">Result acknowledgeCumulative(const MessageId &amp;messageId)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a80828a506f7150b68d2a27ebe7502b2f"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a80828a506f7150b68d2a27ebe7502b2f">pulsar::Consumer::seekAsync</a></div><div class="ttdeci">virtual void seekAsync(uint64_t timestamp, const ResultCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a83f58a6118a693398c16e70cecac0303"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a83f58a6118a693398c16e70cecac0303">pulsar::Consumer::getConsumerName</a></div><div class="ttdeci">const std::string &amp; getConsumerName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a8b01803221c283e4df21715aeb024b84"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a8b01803221c283e4df21715aeb024b84">pulsar::Consumer::close</a></div><div class="ttdeci">Result close()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a9595ca8b28b2986e0fca503af4d4a5d7"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a9595ca8b28b2986e0fca503af4d4a5d7">pulsar::Consumer::acknowledgeCumulativeAsync</a></div><div class="ttdeci">void acknowledgeCumulativeAsync(const Message &amp;message, const ResultCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a95a69d39ec2c8714b6ffce0f6ab74a55"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a95a69d39ec2c8714b6ffce0f6ab74a55">pulsar::Consumer::isConnected</a></div><div class="ttdeci">bool isConnected() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_a99703b58b62320701220041473f6a268"><div class="ttname"><a href="classpulsar_1_1_consumer.html#a99703b58b62320701220041473f6a268">pulsar::Consumer::receiveAsync</a></div><div class="ttdeci">void receiveAsync(const ReceiveCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_ab02b777ce0286f4450a3429c4daed86d"><div class="ttname"><a href="classpulsar_1_1_consumer.html#ab02b777ce0286f4450a3429c4daed86d">pulsar::Consumer::acknowledgeCumulativeAsync</a></div><div class="ttdeci">void acknowledgeCumulativeAsync(const MessageId &amp;messageId, const ResultCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_abc8cec6e81c582c6af8e3d931e41a2ad"><div class="ttname"><a href="classpulsar_1_1_consumer.html#abc8cec6e81c582c6af8e3d931e41a2ad">pulsar::Consumer::receive</a></div><div class="ttdeci">Result receive(Message &amp;msg)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_ac13f007e453e3cc8ef36eb1dc43cb431"><div class="ttname"><a href="classpulsar_1_1_consumer.html#ac13f007e453e3cc8ef36eb1dc43cb431">pulsar::Consumer::batchReceiveAsync</a></div><div class="ttdeci">void batchReceiveAsync(const BatchReceiveCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_ace9475b70f37c91df5b442f41058370e"><div class="ttname"><a href="classpulsar_1_1_consumer.html#ace9475b70f37c91df5b442f41058370e">pulsar::Consumer::receive</a></div><div class="ttdeci">Result receive(Message &amp;msg, int timeoutMs)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_ad55d95cd75501562d8ae6d83935d5977"><div class="ttname"><a href="classpulsar_1_1_consumer.html#ad55d95cd75501562d8ae6d83935d5977">pulsar::Consumer::getTopic</a></div><div class="ttdeci">const std::string &amp; getTopic() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_ae6835e612b61795a13eff5fd2da85a0e"><div class="ttname"><a href="classpulsar_1_1_consumer.html#ae6835e612b61795a13eff5fd2da85a0e">pulsar::Consumer::seek</a></div><div class="ttdeci">Result seek(uint64_t timestamp)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_aeba1b5d159432bc9d72dba2e6be1b8ac"><div class="ttname"><a href="classpulsar_1_1_consumer.html#aeba1b5d159432bc9d72dba2e6be1b8ac">pulsar::Consumer::acknowledgeAsync</a></div><div class="ttdeci">void acknowledgeAsync(const MessageIdList &amp;messageIdList, const ResultCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_aed10e043835e50d8129e6adecd91da72"><div class="ttname"><a href="classpulsar_1_1_consumer.html#aed10e043835e50d8129e6adecd91da72">pulsar::Consumer::acknowledge</a></div><div class="ttdeci">Result acknowledge(const MessageId &amp;messageId)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_af6049caaf3e1f8bc91d4dc52b02ab7d1"><div class="ttname"><a href="classpulsar_1_1_consumer.html#af6049caaf3e1f8bc91d4dc52b02ab7d1">pulsar::Consumer::getSubscriptionName</a></div><div class="ttdeci">const std::string &amp; getSubscriptionName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_af60a7e87b76e5c69ee0e14f6ec902908"><div class="ttname"><a href="classpulsar_1_1_consumer.html#af60a7e87b76e5c69ee0e14f6ec902908">pulsar::Consumer::getLastMessageId</a></div><div class="ttdeci">Result getLastMessageId(MessageId &amp;messageId)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_afd631d1c357bc0284afe3e0cd2acbd6e"><div class="ttname"><a href="classpulsar_1_1_consumer.html#afd631d1c357bc0284afe3e0cd2acbd6e">pulsar::Consumer::negativeAcknowledge</a></div><div class="ttdeci">void negativeAcknowledge(const MessageId &amp;messageId)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html_afe59503d5d5309f38d4e246bd9f435b4"><div class="ttname"><a href="classpulsar_1_1_consumer.html#afe59503d5d5309f38d4e246bd9f435b4">pulsar::Consumer::Consumer</a></div><div class="ttdeci">Consumer()</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:46</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="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>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</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: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>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_consumer_configuration_8h_source.html b/static/api/cpp/4.0.x/_consumer_configuration_8h_source.html
new file mode 100644
index 00000000000..b6c7d6bd2ac
--- /dev/null
+++ b/static/api/cpp/4.0.x/_consumer_configuration_8h_source.html
@@ -0,0 +1,405 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_CONSUMERCONFIGURATION_H_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_CONSUMERCONFIGURATION_H_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/ConsumerCryptoFailureAction.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/ConsumerEventListener.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/ConsumerInterceptor.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;pulsar/ConsumerType.h&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;pulsar/CryptoKeyReader.h&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;pulsar/InitialPosition.h&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#include &lt;pulsar/KeySharedPolicy.h&gt;</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#include &lt;pulsar/RegexSubscriptionMode.h&gt;</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="preprocessor">#include &lt;pulsar/Schema.h&gt;</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="preprocessor">#include &lt;pulsar/TypedMessage.h&gt;</span></div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="preprocessor">#include &quot;BatchReceivePolicy.h&quot;</span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="preprocessor">#include &quot;DeadLetterPolicy.h&quot;</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="keyword">class </span><a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a>;</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span><span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span><span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span></div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="namespacepulsar.html#ac87806090d752fb2248e8da65727630a">   49</a></span><span class="keyword">typedef</span> std::vector&lt;Message&gt; <a class="code hl_typedef" href="namespacepulsar.html#ac87806090d752fb2248e8da65727630a">Messages</a>;</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">   50</a></span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> result)&gt; <a class="code hl_typedef" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>;</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a>, <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; msg)&gt; ReceiveCallback;</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a>, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacepulsar.html#ac87806090d752fb2248e8da65727630a">Messages</a>&amp; msgs)&gt; BatchReceiveCallback;</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> result, <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a> messageId)&gt; GetLastMessageIdCallback;</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span></div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="namespacepulsar.html#aa2439b1ef83202e8d35359d0134f2d56">   56</a></span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a>&amp; consumer, <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; msg)&gt; <a class="code hl_typedef" href="namespacepulsar.html#a [...]
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span><span class="keyword">typedef</span> std::shared_ptr&lt;ConsumerEventListener&gt; ConsumerEventListenerPtr;</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span> </div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span><span class="keyword">struct </span>ConsumerConfigurationImpl;</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span></div>
+<div class="foldopen" id="foldopen00065" data-start="{" data-end="};">
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html">   65</a></span><span class="keyword">class </span>PULSAR_PUBLIC ConsumerConfiguration {</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>    ConsumerConfiguration();</div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span>    ~ConsumerConfiguration();</div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span>    ConsumerConfiguration(<span class="keyword">const</span> ConsumerConfiguration&amp;);</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>    ConsumerConfiguration&amp; operator=(<span class="keyword">const</span> ConsumerConfiguration&amp;);</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span></div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#ae5d5850e9e0f3130424860e6715b0fa0">   76</a></span>    ConsumerConfiguration <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#ae5d5850e9e0f3130424860e6715b0fa0">clone</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span></div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a79d9ef9f0698713b38f260b0b46d191f">   86</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a79d9ef9f0698713b38f260b0b46d191f">setSchema</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>&amp; schemaInfo);</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span></div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#acc102de37a90b103be92a24e92fac432">   91</a></span>    <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#acc102de37a90b103be92a24e92fac432">getSchema</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span></div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a5029c0a8bc51a764fdd4eaf37e56964d">  105</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a5029c0a8bc51a764fdd4eaf37e56964d">setConsumerType</a>(<a class="code hl_enumeration" href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8e">ConsumerType</a> consumerType);</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span></div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a1a7a0dd0f141ae5816c117727f1c201d">  110</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8e">ConsumerType</a> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a1a7a0dd0f141ae5816c117727f1c201d">getConsumerType</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span></div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#ac1e3ec759196f4c1be69fcb73f02002d">  120</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#ac1e3ec759196f4c1be69fcb73f02002d">setKeySharedPolicy</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>&amp; keySh [...]
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span></div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#ad8febc1509d73daaaa061b5c53f7735b">  125</a></span>    <a class="code hl_class" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#ad8febc1509d73daaaa061b5c53f7735b">getKeySharedPolicy</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span></div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a996399917ff343715bf29afe07981c83">  132</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a996399917ff343715bf29afe07981c83">setMessageListener</a>(<a class="code hl_typedef" href="namespacepulsar.html#aa2439b1ef83202e8d35359d0134f2d56">MessageListener</a> messageListener);</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span> </div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span>    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span>    ConsumerConfiguration&amp; setTypedMessageListener(</div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span>        std::function&lt;<span class="keywordtype">void</span>(<a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a>&amp;, <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_typed_message.html">TypedMessage&lt;T&gt;</a>&amp;)&gt; listener,</div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno">  137</span>        <span class="keyword">typename</span> TypedMessage&lt;T&gt;::Decoder decoder) {</div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno">  138</span>        <span class="keywordflow">return</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a996399917ff343715bf29afe07981c83">setMessageListener</a>([listener, decoder](<a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a>&amp; consumer, <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; m [...]
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span>            listener(consumer, <a class="code hl_class" href="classpulsar_1_1_typed_message.html">TypedMessage&lt;T&gt;</a>{msg, decoder});</div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span>        });</div>
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno">  141</span>    }</div>
+<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span></div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a2dcd50261f7fefa42b8fce239ef12f00">  146</a></span>    <a class="code hl_typedef" href="namespacepulsar.html#aa2439b1ef83202e8d35359d0134f2d56">MessageListener</a> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a2dcd50261f7fefa42b8fce239ef12f00">getMessageListener</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span></div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#afe5439f3160e601a09e62237d2377c1a">  151</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#afe5439f3160e601a09e62237d2377c1a">hasMessageListener</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span></div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a6589512011ad7daf2b9eeaaaf4020842">  157</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a6589512011ad7daf2b9eeaaaf4020842">setConsumerEventListener</a>(ConsumerEventListenerPtr eventListener);</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno">  158</span></div>
+<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#ad58be2c7d04522d70a4d4cd447b639b3">  162</a></span>    ConsumerEventListenerPtr <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#ad58be2c7d04522d70a4d4cd447b639b3">getConsumerEventListener</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno">  163</span></div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#abc2cdbdc7878fca3205ec77cea2b1fa2">  167</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#abc2cdbdc7878fca3205ec77cea2b1fa2">hasConsumerEventListener</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span></div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a265d2cd1e9d1d329eff9b98346f245c2">  190</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a265d2cd1e9d1d329eff9b98346f245c2">setReceiverQueueSize</a>(<span class="keywordtype">int</span> size);</div>
+<div class="line"><a id="l00191" name="l00191"></a><span class="lineno">  191</span></div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a5c268fc7714916cf25c4a34a55a5bdc4">  195</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a5c268fc7714916cf25c4a34a55a5bdc4">getReceiverQueueSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span></div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a9c07888abe996b80c2fd168278a24de3">  205</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a9c07888abe996b80c2fd168278a24de3">setMaxTotalReceiverQueueSizeAcrossPartitions</a>(<span class="keywordtype">int</span> maxTotalReceiverQueueSizeAcrossPartitions);</div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span></div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#abffc95603a9f983528b4dba82324f146">  210</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#abffc95603a9f983528b4dba82324f146">getMaxTotalReceiverQueueSizeAcrossPartitions</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno">  211</span></div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a9a9c38d660aabc9162295de38bc26b77">  217</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a9a9c38d660aabc9162295de38bc26b77">setConsumerName</a>(<span class="keyword">const</span> std::string&amp; consumerName);</div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno">  218</span></div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#af3941af5ed7e7f4ab7b5f5a8737eaee9">  222</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#af3941af5ed7e7f4ab7b5f5a8737eaee9">getConsumerName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span></div>
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#ad55a4f0187517c984de8d01f8660fb8f">  234</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#ad55a4f0187517c984de8d01f8660fb8f">setUnAckedMessagesTimeoutMs</a>(<span class="keyword">const</span> uint64_t milliSeconds);</div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno">  235</span></div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a373ab78d91d7fbbd0c9b721ba1f34f26">  239</a></span>    <span class="keywordtype">long</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a373ab78d91d7fbbd0c9b721ba1f34f26">getUnAckedMessagesTimeoutMs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span></div>
+<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a8b86fc6d5d8ca8e5c5dd35aa8a1c52b4">  252</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a8b86fc6d5d8ca8e5c5dd35aa8a1c52b4">setTickDurationInMs</a>(<span class="keyword">const</span> uint64_t milliSeconds);</div>
+<div class="line"><a id="l00253" name="l00253"></a><span class="lineno">  253</span></div>
+<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a2b45112da6be71eaaff4513bf96a73c0">  257</a></span>    <span class="keywordtype">long</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a2b45112da6be71eaaff4513bf96a73c0">getTickDurationInMs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00258" name="l00258"></a><span class="lineno">  258</span></div>
+<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#aef99f71cd13324351864dd1e376d8788">  271</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#aef99f71cd13324351864dd1e376d8788">setNegativeAckRedeliveryDelayMs</a>(<span class="keywordtype">long</span> redeliveryDelayMillis);</div>
+<div class="line"><a id="l00272" name="l00272"></a><span class="lineno">  272</span></div>
+<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a7a4adb22969050a6bfd6919e2ac68917">  278</a></span>    <span class="keywordtype">long</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a7a4adb22969050a6bfd6919e2ac68917">getNegativeAckRedeliveryDelayMs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00279" name="l00279"></a><span class="lineno">  279</span></div>
+<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#ad7ef62829853fa444758fa838ee158e7">  286</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#ad7ef62829853fa444758fa838ee158e7">setNegativeAckPrecisionBitCnt</a>(<span class="keywordtype">int</span> negativeAckPrecisionBitCnt);</div>
+<div class="line"><a id="l00287" name="l00287"></a><span class="lineno">  287</span></div>
+<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#ab6f417feae614eb4a9599133b06932b6">  293</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#ab6f417feae614eb4a9599133b06932b6">getNegativeAckPrecisionBitCnt</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00294" name="l00294"></a><span class="lineno">  294</span></div>
+<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#af3f26276c9027a78b9e3243a3e2e38bb">  303</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#af3f26276c9027a78b9e3243a3e2e38bb">setAckGroupingTimeMs</a>(<span class="keywordtype">long</span> ackGroupingMillis);</div>
+<div class="line"><a id="l00304" name="l00304"></a><span class="lineno">  304</span></div>
+<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#abc531b79e46a4c2fc70cec8ca573d194">  310</a></span>    <span class="keywordtype">long</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#abc531b79e46a4c2fc70cec8ca573d194">getAckGroupingTimeMs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00311" name="l00311"></a><span class="lineno">  311</span></div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a593295c1aa0cd77c32a6cfdee80cd452">  318</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a593295c1aa0cd77c32a6cfdee80cd452">setAckGroupingMaxSize</a>(<span class="keywordtype">long</span> maxGroupingSize);</div>
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span></div>
+<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a5eeb586f29508eca6d1cd602a8da7a06">  325</a></span>    <span class="keywordtype">long</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a5eeb586f29508eca6d1cd602a8da7a06">getAckGroupingMaxSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00326" name="l00326"></a><span class="lineno">  326</span></div>
+<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a453a6af922fea7c45d56264d57925507">  334</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a453a6af922fea7c45d56264d57925507">setBrokerConsumerStatsCacheTimeInMs</a>(<span class="keyword">const</span> <span class="keywordtype">long</span> cacheTimeInMs);</div>
+<div class="line"><a id="l00335" name="l00335"></a><span class="lineno">  335</span></div>
+<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a23fd67606f5ca05a158226cbd0a2eb54">  339</a></span>    <span class="keywordtype">long</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a23fd67606f5ca05a158226cbd0a2eb54">getBrokerConsumerStatsCacheTimeInMs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00340" name="l00340"></a><span class="lineno">  340</span></div>
+<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#ac9a6a885f0cea261f32dc4a3509643f4">  344</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#ac9a6a885f0cea261f32dc4a3509643f4">isEncryptionEnabled</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00345" name="l00345"></a><span class="lineno">  345</span></div>
+<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a70089f562cb67d8743165540235b2ec7">  349</a></span>    <span class="keyword">const</span> CryptoKeyReaderPtr <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a70089f562cb67d8743165540235b2ec7">getCryptoKeyReader</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00350" name="l00350"></a><span class="lineno">  350</span></div>
+<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a9ff24549af7bda3f2f4da4cce299eb5d">  356</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a9ff24549af7bda3f2f4da4cce299eb5d">setCryptoKeyReader</a>(CryptoKeyReaderPtr cryptoKeyReader);</div>
+<div class="line"><a id="l00357" name="l00357"></a><span class="lineno">  357</span></div>
+<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a339e3d80453eb963d5d1a64c5660e556">  361</a></span>    ConsumerCryptoFailureAction <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a339e3d80453eb963d5d1a64c5660e556">getCryptoFailureAction</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00362" name="l00362"></a><span class="lineno">  362</span></div>
+<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#aadf3be3099c2bbb4354839e21a48e875">  366</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#aadf3be3099c2bbb4354839e21a48e875">setCryptoFailureAction</a>(ConsumerCryptoFailureAction action);</div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno">  367</span></div>
+<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a74209a513ebdb85f5969f2fedafb0b44">  371</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a74209a513ebdb85f5969f2fedafb0b44">isReadCompacted</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00372" name="l00372"></a><span class="lineno">  372</span></div>
+<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#ae3f12b9f76982d8ea64f80adfb8af960">  386</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#ae3f12b9f76982d8ea64f80adfb8af960">setReadCompacted</a>(<span class="keywordtype">bool</span> compacted);</div>
+<div class="line"><a id="l00387" name="l00387"></a><span class="lineno">  387</span></div>
+<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a5910aa7539a7fb217a38813d846a9acb">  395</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a5910aa7539a7fb217a38813d846a9acb">setPatternAutoDiscoveryPeriod</a>(<span class="keywordtype">int</span> periodInSeconds);</div>
+<div class="line"><a id="l00396" name="l00396"></a><span class="lineno">  396</span></div>
+<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a5034a765b5b60ea71f1beead267ff88f">  400</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a5034a765b5b60ea71f1beead267ff88f">getPatternAutoDiscoveryPeriod</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00401" name="l00401"></a><span class="lineno">  401</span></div>
+<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a56726bee70b41cc2832fae59a38837a4">  408</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a56726bee70b41cc2832fae59a38837a4">setRegexSubscriptionMode</a>(<a class="code hl_enumeration" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbd">RegexSubscriptionMode</a> regexSubscr [...]
+<div class="line"><a id="l00409" name="l00409"></a><span class="lineno">  409</span></div>
+<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a74fc4ee3cb49f470b46914a3f7d03c6d">  413</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbd">RegexSubscriptionMode</a> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a74fc4ee3cb49f470b46914a3f7d03c6d">getRegexSubscriptionMode</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno">  414</span></div>
+<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#ab0e049e62befb9b924307ba6f990cd97">  421</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#ab0e049e62befb9b924307ba6f990cd97">setSubscriptionInitialPosition</a>(InitialPosition subscriptionInitialPosition);</div>
+<div class="line"><a id="l00422" name="l00422"></a><span class="lineno">  422</span></div>
+<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a5ceb47d60826a738ed122cd962220ef7">  426</a></span>    InitialPosition <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a5ceb47d60826a738ed122cd962220ef7">getSubscriptionInitialPosition</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00427" name="l00427"></a><span class="lineno">  427</span></div>
+<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a576115b74c66df74662b2e4f00a69731">  434</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a576115b74c66df74662b2e4f00a69731">setBatchReceivePolicy</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_batch_receive_policy.html">BatchReceiveP [...]
+<div class="line"><a id="l00435" name="l00435"></a><span class="lineno">  435</span></div>
+<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a95a0726c17b428ffa58824171758a6ac">  441</a></span>    <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_batch_receive_policy.html">BatchReceivePolicy</a>&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a95a0726c17b428ffa58824171758a6ac">getBatchReceivePolicy</a>() <span class="keyword" [...]
+<div class="line"><a id="l00442" name="l00442"></a><span class="lineno">  442</span></div>
+<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a84033093b1bf99d7c843634fdc8a32ec">  470</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a84033093b1bf99d7c843634fdc8a32ec">setDeadLetterPolicy</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy< [...]
+<div class="line"><a id="l00471" name="l00471"></a><span class="lineno">  471</span></div>
+<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a123b495132d47e17f0cd82f9163eb8c8">  477</a></span>    <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy</a>&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a123b495132d47e17f0cd82f9163eb8c8">getDeadLetterPolicy</a>() <span class="keyword">const [...]
+<div class="line"><a id="l00478" name="l00478"></a><span class="lineno">  478</span></div>
+<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a70a15216ef41c8bd38178bdc5e377a31">  485</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a70a15216ef41c8bd38178bdc5e377a31">setReplicateSubscriptionStateEnabled</a>(<span class="keywordtype">bool</span> enabled);</div>
+<div class="line"><a id="l00486" name="l00486"></a><span class="lineno">  486</span></div>
+<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a4ab6c45eb256e8ad9ec4d74199e5c01d">  490</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a4ab6c45eb256e8ad9ec4d74199e5c01d">isReplicateSubscriptionStateEnabled</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00491" name="l00491"></a><span class="lineno">  491</span></div>
+<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a8aab5c5bd65073257d0509d410099570">  499</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a8aab5c5bd65073257d0509d410099570">hasProperty</a>(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00500" name="l00500"></a><span class="lineno">  500</span></div>
+<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a8b10f7a28e03a4929fc58aea5b67405d">  507</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a8b10f7a28e03a4929fc58aea5b67405d">getProperty</a>(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00508" name="l00508"></a><span class="lineno">  508</span></div>
+<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a5982ae123e367df322be897f81337ad0">  512</a></span>    std::map&lt;std::string, std::string&gt;&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a5982ae123e367df322be897f81337ad0">getProperties</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00513" name="l00513"></a><span class="lineno">  513</span></div>
+<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#acb0cfc0ded14bd3c324466a41c9aaf9e">  519</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#acb0cfc0ded14bd3c324466a41c9aaf9e">setProperty</a>(<span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> std::string&amp; value);</div>
+<div class="line"><a id="l00520" name="l00520"></a><span class="lineno">  520</span></div>
+<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a093486de4b32d91655d8b4e45efd6d6f">  524</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a093486de4b32d91655d8b4e45efd6d6f">setProperties</a>(<span class="keyword">const</span> std::map&lt;std::string, std::string&gt;&amp; properties);</div>
+<div class="line"><a id="l00525" name="l00525"></a><span class="lineno">  525</span></div>
+<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#aaa9a9a19c4445bb6521c2b3d1a2037f6">  529</a></span>    std::map&lt;std::string, std::string&gt;&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#aaa9a9a19c4445bb6521c2b3d1a2037f6">getSubscriptionProperties</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00530" name="l00530"></a><span class="lineno">  530</span></div>
+<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#ae60097f3b91d2291dd121e3573f55855">  538</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#ae60097f3b91d2291dd121e3573f55855">setSubscriptionProperties</a>(</div>
+<div class="line"><a id="l00539" name="l00539"></a><span class="lineno">  539</span>        <span class="keyword">const</span> std::map&lt;std::string, std::string&gt;&amp; subscriptionProperties);</div>
+<div class="line"><a id="l00540" name="l00540"></a><span class="lineno">  540</span></div>
+<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a09492153409160a4993796f88caadd23">  547</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a09492153409160a4993796f88caadd23">setPriorityLevel</a>(<span class="keywordtype">int</span> priorityLevel);</div>
+<div class="line"><a id="l00548" name="l00548"></a><span class="lineno">  548</span></div>
+<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a47dd7c844d904d52d3a2d5f4b498402d">  552</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a47dd7c844d904d52d3a2d5f4b498402d">getPriorityLevel</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00553" name="l00553"></a><span class="lineno">  553</span></div>
+<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a9d17c5b2ed6547ce9e37fad4438e6e83">  575</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a9d17c5b2ed6547ce9e37fad4438e6e83">setMaxPendingChunkedMessage</a>(<span class="keywordtype">size_t</span> maxPendingChunkedMessage);</div>
+<div class="line"><a id="l00576" name="l00576"></a><span class="lineno">  576</span></div>
+<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a46e9481689880f756588075f64913bb7">  580</a></span>    <span class="keywordtype">size_t</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a46e9481689880f756588075f64913bb7">getMaxPendingChunkedMessage</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00581" name="l00581"></a><span class="lineno">  581</span></div>
+<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a3f11566f0654bd4a9df8e7852e4e048e">  592</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a3f11566f0654bd4a9df8e7852e4e048e">setAutoAckOldestChunkedMessageOnQueueFull</a>(</div>
+<div class="line"><a id="l00593" name="l00593"></a><span class="lineno">  593</span>        <span class="keywordtype">bool</span> autoAckOldestChunkedMessageOnQueueFull);</div>
+<div class="line"><a id="l00594" name="l00594"></a><span class="lineno">  594</span></div>
+<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a4f978c3e8ff479ed0fea93eba5275f6d">  598</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a4f978c3e8ff479ed0fea93eba5275f6d">isAutoAckOldestChunkedMessageOnQueueFull</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00599" name="l00599"></a><span class="lineno">  599</span></div>
+<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#ac1bf9941a3dbb3948e76b9638d188ea9">  609</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#ac1bf9941a3dbb3948e76b9638d188ea9">setExpireTimeOfIncompleteChunkedMessageMs</a>(</div>
+<div class="line"><a id="l00610" name="l00610"></a><span class="lineno">  610</span>        <span class="keywordtype">long</span> expireTimeOfIncompleteChunkedMessageMs);</div>
+<div class="line"><a id="l00611" name="l00611"></a><span class="lineno">  611</span></div>
+<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a5caba4e5a875b67c4cf4c794461e4e8d">  618</a></span>    <span class="keywordtype">long</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a5caba4e5a875b67c4cf4c794461e4e8d">getExpireTimeOfIncompleteChunkedMessageMs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00619" name="l00619"></a><span class="lineno">  619</span></div>
+<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#af4085925dc8b62bec126cd3ea1e1085a">  627</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#af4085925dc8b62bec126cd3ea1e1085a">setStartMessageIdInclusive</a>(<span class="keywordtype">bool</span> startMessageIdInclusive);</div>
+<div class="line"><a id="l00628" name="l00628"></a><span class="lineno">  628</span></div>
+<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a968b4d4ae6348072965ab98bf1e7212e">  632</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a968b4d4ae6348072965ab98bf1e7212e">isStartMessageIdInclusive</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00633" name="l00633"></a><span class="lineno">  633</span></div>
+<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a19565e5aabcb066e97fed95be4724151">  644</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a19565e5aabcb066e97fed95be4724151">setBatchIndexAckEnabled</a>(<span class="keywordtype">bool</span> enabled);</div>
+<div class="line"><a id="l00645" name="l00645"></a><span class="lineno">  645</span></div>
+<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a1f5847ecf1c8f77992b1a4c110011c9a">  649</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a1f5847ecf1c8f77992b1a4c110011c9a">isBatchIndexAckEnabled</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00650" name="l00650"></a><span class="lineno">  650</span></div>
+<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a37bf6928179a14ab9b2af6e69befa2d8">  657</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a37bf6928179a14ab9b2af6e69befa2d8">intercept</a>(<span class="keyword">const</span> std::vector&lt;ConsumerInterceptorPtr&gt;&amp; interceptors);</div>
+<div class="line"><a id="l00658" name="l00658"></a><span class="lineno">  658</span> </div>
+<div class="line"><a id="l00659" name="l00659"></a><span class="lineno">  659</span>    <span class="keyword">const</span> std::vector&lt;ConsumerInterceptorPtr&gt;&amp; getInterceptors() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00660" name="l00660"></a><span class="lineno">  660</span></div>
+<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a3f16bf6b26ddb301c03fcb58e31bdd21">  670</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a3f16bf6b26ddb301c03fcb58e31bdd21">setAckReceiptEnabled</a>(<span class="keywordtype">bool</span> ackReceiptEnabled);</div>
+<div class="line"><a id="l00671" name="l00671"></a><span class="lineno">  671</span></div>
+<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#af4f7966e4662ecb250893927909269a3">  675</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#af4f7966e4662ecb250893927909269a3">isAckReceiptEnabled</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00676" name="l00676"></a><span class="lineno">  676</span></div>
+<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#ad6045687d882d661116ee2b57d5841ed">  685</a></span>    ConsumerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#ad6045687d882d661116ee2b57d5841ed">setStartPaused</a>(<span class="keywordtype">bool</span> startPaused);</div>
+<div class="line"><a id="l00686" name="l00686"></a><span class="lineno">  686</span></div>
+<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html#a2781a77b163a884f35963611072d7710">  690</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_consumer_configuration.html#a2781a77b163a884f35963611072d7710">isStartPaused</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00691" name="l00691"></a><span class="lineno">  691</span> </div>
+<div class="line"><a id="l00692" name="l00692"></a><span class="lineno">  692</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00693" name="l00693"></a><span class="lineno">  693</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a id="l00694" name="l00694"></a><span class="lineno">  694</span> </div>
+<div class="line"><a id="l00695" name="l00695"></a><span class="lineno">  695</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00696" name="l00696"></a><span class="lineno">  696</span>    std::shared_ptr&lt;ConsumerConfigurationImpl&gt; impl_;</div>
+<div class="line"><a id="l00697" name="l00697"></a><span class="lineno">  697</span>};</div>
+</div>
+<div class="line"><a id="l00698" name="l00698"></a><span class="lineno">  698</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00699" name="l00699"></a><span class="lineno">  699</span><span class="preprocessor">#endif </span><span class="comment">/* PULSAR_CONSUMERCONFIGURATION_H_ */</span><span class="preprocessor"></span></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="aclasspulsar_1_1_consumer_configuration_html_a093486de4b32d91655d8b4e45efd6d6f"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a093486de4b32d91655d8b4e45efd6d6f">pulsar::ConsumerConfiguration::setProperties</a></div><div class="ttdeci">ConsumerConfiguration &amp; setProperties(const std::map&lt; std::string, std::string &gt; &amp;properties)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a09492153409160a4993796f88caadd23"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a09492153409160a4993796f88caadd23">pulsar::ConsumerConfiguration::setPriorityLevel</a></div><div class="ttdeci">ConsumerConfiguration &amp; setPriorityLevel(int priorityLevel)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a123b495132d47e17f0cd82f9163eb8c8"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a123b495132d47e17f0cd82f9163eb8c8">pulsar::ConsumerConfiguration::getDeadLetterPolicy</a></div><div class="ttdeci">const DeadLetterPolicy &amp; getDeadLetterPolicy() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a19565e5aabcb066e97fed95be4724151"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a19565e5aabcb066e97fed95be4724151">pulsar::ConsumerConfiguration::setBatchIndexAckEnabled</a></div><div class="ttdeci">ConsumerConfiguration &amp; setBatchIndexAckEnabled(bool enabled)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a1a7a0dd0f141ae5816c117727f1c201d"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a1a7a0dd0f141ae5816c117727f1c201d">pulsar::ConsumerConfiguration::getConsumerType</a></div><div class="ttdeci">ConsumerType getConsumerType() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a1f5847ecf1c8f77992b1a4c110011c9a"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a1f5847ecf1c8f77992b1a4c110011c9a">pulsar::ConsumerConfiguration::isBatchIndexAckEnabled</a></div><div class="ttdeci">bool isBatchIndexAckEnabled() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a23fd67606f5ca05a158226cbd0a2eb54"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a23fd67606f5ca05a158226cbd0a2eb54">pulsar::ConsumerConfiguration::getBrokerConsumerStatsCacheTimeInMs</a></div><div class="ttdeci">long getBrokerConsumerStatsCacheTimeInMs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a265d2cd1e9d1d329eff9b98346f245c2"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a265d2cd1e9d1d329eff9b98346f245c2">pulsar::ConsumerConfiguration::setReceiverQueueSize</a></div><div class="ttdeci">void setReceiverQueueSize(int size)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a2781a77b163a884f35963611072d7710"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a2781a77b163a884f35963611072d7710">pulsar::ConsumerConfiguration::isStartPaused</a></div><div class="ttdeci">bool isStartPaused() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a2b45112da6be71eaaff4513bf96a73c0"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a2b45112da6be71eaaff4513bf96a73c0">pulsar::ConsumerConfiguration::getTickDurationInMs</a></div><div class="ttdeci">long getTickDurationInMs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a2dcd50261f7fefa42b8fce239ef12f00"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a2dcd50261f7fefa42b8fce239ef12f00">pulsar::ConsumerConfiguration::getMessageListener</a></div><div class="ttdeci">MessageListener getMessageListener() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a339e3d80453eb963d5d1a64c5660e556"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a339e3d80453eb963d5d1a64c5660e556">pulsar::ConsumerConfiguration::getCryptoFailureAction</a></div><div class="ttdeci">ConsumerCryptoFailureAction getCryptoFailureAction() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a373ab78d91d7fbbd0c9b721ba1f34f26"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a373ab78d91d7fbbd0c9b721ba1f34f26">pulsar::ConsumerConfiguration::getUnAckedMessagesTimeoutMs</a></div><div class="ttdeci">long getUnAckedMessagesTimeoutMs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a37bf6928179a14ab9b2af6e69befa2d8"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a37bf6928179a14ab9b2af6e69befa2d8">pulsar::ConsumerConfiguration::intercept</a></div><div class="ttdeci">ConsumerConfiguration &amp; intercept(const std::vector&lt; ConsumerInterceptorPtr &gt; &amp;interceptors)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a3f11566f0654bd4a9df8e7852e4e048e"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a3f11566f0654bd4a9df8e7852e4e048e">pulsar::ConsumerConfiguration::setAutoAckOldestChunkedMessageOnQueueFull</a></div><div class="ttdeci">ConsumerConfiguration &amp; setAutoAckOldestChunkedMessageOnQueueFull(bool autoAckOldestChunkedMessageOnQueueFull)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a3f16bf6b26ddb301c03fcb58e31bdd21"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a3f16bf6b26ddb301c03fcb58e31bdd21">pulsar::ConsumerConfiguration::setAckReceiptEnabled</a></div><div class="ttdeci">ConsumerConfiguration &amp; setAckReceiptEnabled(bool ackReceiptEnabled)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a453a6af922fea7c45d56264d57925507"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a453a6af922fea7c45d56264d57925507">pulsar::ConsumerConfiguration::setBrokerConsumerStatsCacheTimeInMs</a></div><div class="ttdeci">void setBrokerConsumerStatsCacheTimeInMs(const long cacheTimeInMs)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a46e9481689880f756588075f64913bb7"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a46e9481689880f756588075f64913bb7">pulsar::ConsumerConfiguration::getMaxPendingChunkedMessage</a></div><div class="ttdeci">size_t getMaxPendingChunkedMessage() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a47dd7c844d904d52d3a2d5f4b498402d"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a47dd7c844d904d52d3a2d5f4b498402d">pulsar::ConsumerConfiguration::getPriorityLevel</a></div><div class="ttdeci">int getPriorityLevel() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a4ab6c45eb256e8ad9ec4d74199e5c01d"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a4ab6c45eb256e8ad9ec4d74199e5c01d">pulsar::ConsumerConfiguration::isReplicateSubscriptionStateEnabled</a></div><div class="ttdeci">bool isReplicateSubscriptionStateEnabled() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a4f978c3e8ff479ed0fea93eba5275f6d"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a4f978c3e8ff479ed0fea93eba5275f6d">pulsar::ConsumerConfiguration::isAutoAckOldestChunkedMessageOnQueueFull</a></div><div class="ttdeci">bool isAutoAckOldestChunkedMessageOnQueueFull() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a5029c0a8bc51a764fdd4eaf37e56964d"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a5029c0a8bc51a764fdd4eaf37e56964d">pulsar::ConsumerConfiguration::setConsumerType</a></div><div class="ttdeci">ConsumerConfiguration &amp; setConsumerType(ConsumerType consumerType)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a5034a765b5b60ea71f1beead267ff88f"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a5034a765b5b60ea71f1beead267ff88f">pulsar::ConsumerConfiguration::getPatternAutoDiscoveryPeriod</a></div><div class="ttdeci">int getPatternAutoDiscoveryPeriod() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a56726bee70b41cc2832fae59a38837a4"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a56726bee70b41cc2832fae59a38837a4">pulsar::ConsumerConfiguration::setRegexSubscriptionMode</a></div><div class="ttdeci">ConsumerConfiguration &amp; setRegexSubscriptionMode(RegexSubscriptionMode regexSubscriptionMode)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a576115b74c66df74662b2e4f00a69731"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a576115b74c66df74662b2e4f00a69731">pulsar::ConsumerConfiguration::setBatchReceivePolicy</a></div><div class="ttdeci">void setBatchReceivePolicy(const BatchReceivePolicy &amp;batchReceivePolicy)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a5910aa7539a7fb217a38813d846a9acb"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a5910aa7539a7fb217a38813d846a9acb">pulsar::ConsumerConfiguration::setPatternAutoDiscoveryPeriod</a></div><div class="ttdeci">void setPatternAutoDiscoveryPeriod(int periodInSeconds)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a593295c1aa0cd77c32a6cfdee80cd452"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a593295c1aa0cd77c32a6cfdee80cd452">pulsar::ConsumerConfiguration::setAckGroupingMaxSize</a></div><div class="ttdeci">void setAckGroupingMaxSize(long maxGroupingSize)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a5982ae123e367df322be897f81337ad0"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a5982ae123e367df322be897f81337ad0">pulsar::ConsumerConfiguration::getProperties</a></div><div class="ttdeci">std::map&lt; std::string, std::string &gt; &amp; getProperties() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a5c268fc7714916cf25c4a34a55a5bdc4"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a5c268fc7714916cf25c4a34a55a5bdc4">pulsar::ConsumerConfiguration::getReceiverQueueSize</a></div><div class="ttdeci">int getReceiverQueueSize() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a5caba4e5a875b67c4cf4c794461e4e8d"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a5caba4e5a875b67c4cf4c794461e4e8d">pulsar::ConsumerConfiguration::getExpireTimeOfIncompleteChunkedMessageMs</a></div><div class="ttdeci">long getExpireTimeOfIncompleteChunkedMessageMs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a5ceb47d60826a738ed122cd962220ef7"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a5ceb47d60826a738ed122cd962220ef7">pulsar::ConsumerConfiguration::getSubscriptionInitialPosition</a></div><div class="ttdeci">InitialPosition getSubscriptionInitialPosition() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a5eeb586f29508eca6d1cd602a8da7a06"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a5eeb586f29508eca6d1cd602a8da7a06">pulsar::ConsumerConfiguration::getAckGroupingMaxSize</a></div><div class="ttdeci">long getAckGroupingMaxSize() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a6589512011ad7daf2b9eeaaaf4020842"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a6589512011ad7daf2b9eeaaaf4020842">pulsar::ConsumerConfiguration::setConsumerEventListener</a></div><div class="ttdeci">ConsumerConfiguration &amp; setConsumerEventListener(ConsumerEventListenerPtr eventListener)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a70089f562cb67d8743165540235b2ec7"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a70089f562cb67d8743165540235b2ec7">pulsar::ConsumerConfiguration::getCryptoKeyReader</a></div><div class="ttdeci">const CryptoKeyReaderPtr getCryptoKeyReader() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a70a15216ef41c8bd38178bdc5e377a31"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a70a15216ef41c8bd38178bdc5e377a31">pulsar::ConsumerConfiguration::setReplicateSubscriptionStateEnabled</a></div><div class="ttdeci">void setReplicateSubscriptionStateEnabled(bool enabled)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a74209a513ebdb85f5969f2fedafb0b44"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a74209a513ebdb85f5969f2fedafb0b44">pulsar::ConsumerConfiguration::isReadCompacted</a></div><div class="ttdeci">bool isReadCompacted() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a74fc4ee3cb49f470b46914a3f7d03c6d"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a74fc4ee3cb49f470b46914a3f7d03c6d">pulsar::ConsumerConfiguration::getRegexSubscriptionMode</a></div><div class="ttdeci">RegexSubscriptionMode getRegexSubscriptionMode() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a79d9ef9f0698713b38f260b0b46d191f"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a79d9ef9f0698713b38f260b0b46d191f">pulsar::ConsumerConfiguration::setSchema</a></div><div class="ttdeci">ConsumerConfiguration &amp; setSchema(const SchemaInfo &amp;schemaInfo)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a7a4adb22969050a6bfd6919e2ac68917"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a7a4adb22969050a6bfd6919e2ac68917">pulsar::ConsumerConfiguration::getNegativeAckRedeliveryDelayMs</a></div><div class="ttdeci">long getNegativeAckRedeliveryDelayMs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a84033093b1bf99d7c843634fdc8a32ec"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a84033093b1bf99d7c843634fdc8a32ec">pulsar::ConsumerConfiguration::setDeadLetterPolicy</a></div><div class="ttdeci">void setDeadLetterPolicy(const DeadLetterPolicy &amp;deadLetterPolicy)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a8aab5c5bd65073257d0509d410099570"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a8aab5c5bd65073257d0509d410099570">pulsar::ConsumerConfiguration::hasProperty</a></div><div class="ttdeci">bool hasProperty(const std::string &amp;name) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a8b10f7a28e03a4929fc58aea5b67405d"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a8b10f7a28e03a4929fc58aea5b67405d">pulsar::ConsumerConfiguration::getProperty</a></div><div class="ttdeci">const std::string &amp; getProperty(const std::string &amp;name) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a8b86fc6d5d8ca8e5c5dd35aa8a1c52b4"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a8b86fc6d5d8ca8e5c5dd35aa8a1c52b4">pulsar::ConsumerConfiguration::setTickDurationInMs</a></div><div class="ttdeci">void setTickDurationInMs(const uint64_t milliSeconds)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a95a0726c17b428ffa58824171758a6ac"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a95a0726c17b428ffa58824171758a6ac">pulsar::ConsumerConfiguration::getBatchReceivePolicy</a></div><div class="ttdeci">const BatchReceivePolicy &amp; getBatchReceivePolicy() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a968b4d4ae6348072965ab98bf1e7212e"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a968b4d4ae6348072965ab98bf1e7212e">pulsar::ConsumerConfiguration::isStartMessageIdInclusive</a></div><div class="ttdeci">bool isStartMessageIdInclusive() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a996399917ff343715bf29afe07981c83"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a996399917ff343715bf29afe07981c83">pulsar::ConsumerConfiguration::setMessageListener</a></div><div class="ttdeci">ConsumerConfiguration &amp; setMessageListener(MessageListener messageListener)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a9a9c38d660aabc9162295de38bc26b77"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a9a9c38d660aabc9162295de38bc26b77">pulsar::ConsumerConfiguration::setConsumerName</a></div><div class="ttdeci">void setConsumerName(const std::string &amp;consumerName)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a9c07888abe996b80c2fd168278a24de3"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a9c07888abe996b80c2fd168278a24de3">pulsar::ConsumerConfiguration::setMaxTotalReceiverQueueSizeAcrossPartitions</a></div><div class="ttdeci">void setMaxTotalReceiverQueueSizeAcrossPartitions(int maxTotalReceiverQueueSizeAcrossPartitions)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a9d17c5b2ed6547ce9e37fad4438e6e83"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a9d17c5b2ed6547ce9e37fad4438e6e83">pulsar::ConsumerConfiguration::setMaxPendingChunkedMessage</a></div><div class="ttdeci">ConsumerConfiguration &amp; setMaxPendingChunkedMessage(size_t maxPendingChunkedMessage)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_a9ff24549af7bda3f2f4da4cce299eb5d"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#a9ff24549af7bda3f2f4da4cce299eb5d">pulsar::ConsumerConfiguration::setCryptoKeyReader</a></div><div class="ttdeci">ConsumerConfiguration &amp; setCryptoKeyReader(CryptoKeyReaderPtr cryptoKeyReader)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_aaa9a9a19c4445bb6521c2b3d1a2037f6"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#aaa9a9a19c4445bb6521c2b3d1a2037f6">pulsar::ConsumerConfiguration::getSubscriptionProperties</a></div><div class="ttdeci">std::map&lt; std::string, std::string &gt; &amp; getSubscriptionProperties() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_aadf3be3099c2bbb4354839e21a48e875"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#aadf3be3099c2bbb4354839e21a48e875">pulsar::ConsumerConfiguration::setCryptoFailureAction</a></div><div class="ttdeci">ConsumerConfiguration &amp; setCryptoFailureAction(ConsumerCryptoFailureAction action)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_ab0e049e62befb9b924307ba6f990cd97"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#ab0e049e62befb9b924307ba6f990cd97">pulsar::ConsumerConfiguration::setSubscriptionInitialPosition</a></div><div class="ttdeci">void setSubscriptionInitialPosition(InitialPosition subscriptionInitialPosition)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_ab6f417feae614eb4a9599133b06932b6"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#ab6f417feae614eb4a9599133b06932b6">pulsar::ConsumerConfiguration::getNegativeAckPrecisionBitCnt</a></div><div class="ttdeci">int getNegativeAckPrecisionBitCnt() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_abc2cdbdc7878fca3205ec77cea2b1fa2"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#abc2cdbdc7878fca3205ec77cea2b1fa2">pulsar::ConsumerConfiguration::hasConsumerEventListener</a></div><div class="ttdeci">bool hasConsumerEventListener() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_abc531b79e46a4c2fc70cec8ca573d194"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#abc531b79e46a4c2fc70cec8ca573d194">pulsar::ConsumerConfiguration::getAckGroupingTimeMs</a></div><div class="ttdeci">long getAckGroupingTimeMs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_abffc95603a9f983528b4dba82324f146"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#abffc95603a9f983528b4dba82324f146">pulsar::ConsumerConfiguration::getMaxTotalReceiverQueueSizeAcrossPartitions</a></div><div class="ttdeci">int getMaxTotalReceiverQueueSizeAcrossPartitions() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_ac1bf9941a3dbb3948e76b9638d188ea9"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#ac1bf9941a3dbb3948e76b9638d188ea9">pulsar::ConsumerConfiguration::setExpireTimeOfIncompleteChunkedMessageMs</a></div><div class="ttdeci">ConsumerConfiguration &amp; setExpireTimeOfIncompleteChunkedMessageMs(long expireTimeOfIncompleteChunkedMessageMs)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_ac1e3ec759196f4c1be69fcb73f02002d"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#ac1e3ec759196f4c1be69fcb73f02002d">pulsar::ConsumerConfiguration::setKeySharedPolicy</a></div><div class="ttdeci">ConsumerConfiguration &amp; setKeySharedPolicy(const KeySharedPolicy &amp;keySharedPolicy)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_ac9a6a885f0cea261f32dc4a3509643f4"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#ac9a6a885f0cea261f32dc4a3509643f4">pulsar::ConsumerConfiguration::isEncryptionEnabled</a></div><div class="ttdeci">bool isEncryptionEnabled() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_acb0cfc0ded14bd3c324466a41c9aaf9e"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#acb0cfc0ded14bd3c324466a41c9aaf9e">pulsar::ConsumerConfiguration::setProperty</a></div><div class="ttdeci">ConsumerConfiguration &amp; setProperty(const std::string &amp;name, const std::string &amp;value)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_acc102de37a90b103be92a24e92fac432"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#acc102de37a90b103be92a24e92fac432">pulsar::ConsumerConfiguration::getSchema</a></div><div class="ttdeci">const SchemaInfo &amp; getSchema() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_ad55a4f0187517c984de8d01f8660fb8f"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#ad55a4f0187517c984de8d01f8660fb8f">pulsar::ConsumerConfiguration::setUnAckedMessagesTimeoutMs</a></div><div class="ttdeci">void setUnAckedMessagesTimeoutMs(const uint64_t milliSeconds)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_ad58be2c7d04522d70a4d4cd447b639b3"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#ad58be2c7d04522d70a4d4cd447b639b3">pulsar::ConsumerConfiguration::getConsumerEventListener</a></div><div class="ttdeci">ConsumerEventListenerPtr getConsumerEventListener() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_ad6045687d882d661116ee2b57d5841ed"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#ad6045687d882d661116ee2b57d5841ed">pulsar::ConsumerConfiguration::setStartPaused</a></div><div class="ttdeci">ConsumerConfiguration &amp; setStartPaused(bool startPaused)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_ad7ef62829853fa444758fa838ee158e7"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#ad7ef62829853fa444758fa838ee158e7">pulsar::ConsumerConfiguration::setNegativeAckPrecisionBitCnt</a></div><div class="ttdeci">void setNegativeAckPrecisionBitCnt(int negativeAckPrecisionBitCnt)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_ad8febc1509d73daaaa061b5c53f7735b"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#ad8febc1509d73daaaa061b5c53f7735b">pulsar::ConsumerConfiguration::getKeySharedPolicy</a></div><div class="ttdeci">KeySharedPolicy getKeySharedPolicy() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_ae3f12b9f76982d8ea64f80adfb8af960"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#ae3f12b9f76982d8ea64f80adfb8af960">pulsar::ConsumerConfiguration::setReadCompacted</a></div><div class="ttdeci">void setReadCompacted(bool compacted)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_ae5d5850e9e0f3130424860e6715b0fa0"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#ae5d5850e9e0f3130424860e6715b0fa0">pulsar::ConsumerConfiguration::clone</a></div><div class="ttdeci">ConsumerConfiguration clone() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_ae60097f3b91d2291dd121e3573f55855"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#ae60097f3b91d2291dd121e3573f55855">pulsar::ConsumerConfiguration::setSubscriptionProperties</a></div><div class="ttdeci">ConsumerConfiguration &amp; setSubscriptionProperties(const std::map&lt; std::string, std::string &gt; &amp;subscriptionProperties)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_aef99f71cd13324351864dd1e376d8788"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#aef99f71cd13324351864dd1e376d8788">pulsar::ConsumerConfiguration::setNegativeAckRedeliveryDelayMs</a></div><div class="ttdeci">void setNegativeAckRedeliveryDelayMs(long redeliveryDelayMillis)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_af3941af5ed7e7f4ab7b5f5a8737eaee9"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#af3941af5ed7e7f4ab7b5f5a8737eaee9">pulsar::ConsumerConfiguration::getConsumerName</a></div><div class="ttdeci">const std::string &amp; getConsumerName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_af3f26276c9027a78b9e3243a3e2e38bb"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#af3f26276c9027a78b9e3243a3e2e38bb">pulsar::ConsumerConfiguration::setAckGroupingTimeMs</a></div><div class="ttdeci">void setAckGroupingTimeMs(long ackGroupingMillis)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_af4085925dc8b62bec126cd3ea1e1085a"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#af4085925dc8b62bec126cd3ea1e1085a">pulsar::ConsumerConfiguration::setStartMessageIdInclusive</a></div><div class="ttdeci">ConsumerConfiguration &amp; setStartMessageIdInclusive(bool startMessageIdInclusive)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_af4f7966e4662ecb250893927909269a3"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#af4f7966e4662ecb250893927909269a3">pulsar::ConsumerConfiguration::isAckReceiptEnabled</a></div><div class="ttdeci">bool isAckReceiptEnabled() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html_afe5439f3160e601a09e62237d2377c1a"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html#afe5439f3160e601a09e62237d2377c1a">pulsar::ConsumerConfiguration::hasMessageListener</a></div><div class="ttdeci">bool hasMessageListener() const</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_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_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:53</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:46</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="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:147</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>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</div></div>
+<div class="ttc" id="anamespacepulsar_html_a9001dd59f719a974dc7b4ef5858dda8e"><div class="ttname"><a href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8e">pulsar::ConsumerType</a></div><div class="ttdeci">ConsumerType</div><div class="ttdef"><b>Definition</b> ConsumerType.h:26</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:24</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: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>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_consumer_crypto_failure_action_8h_source.html b/static/api/cpp/4.0.x/_consumer_crypto_failure_action_8h_source.html
new file mode 100644
index 00000000000..4491fb0eb93
--- /dev/null
+++ b/static/api/cpp/4.0.x/_consumer_crypto_failure_action_8h_source.html
@@ -0,0 +1,109 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef CONSUMERCRYPTOFAILUREACTION_H_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define CONSUMERCRYPTOFAILUREACTION_H_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="keyword">enum class</span> ConsumerCryptoFailureAction</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>{</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>    FAIL,     <span class="comment">// This is the default option to fail consume until crypto succeeds</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>    DISCARD,  <span class="comment">// Message is silently acknowledged and not delivered to the application</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>    CONSUME   <span class="comment">// Deliver the encrypted message to the application. It&#39;s the application&#39;s</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>              <span class="comment">// responsibility to decrypt the message. If message is also compressed,</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>              <span class="comment">// decompression will fail. If message contain batch messages, client will</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>              <span class="comment">// not be able to retrieve individual messages in the batch</span></div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>};</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>} <span class="comment">/* namespace pulsar */</span></div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="preprocessor">#endif </span><span class="comment">/* CONSUMERCRYPTOFAILUREACTION_H_ */</span><span class="preprocessor"></span></div>
+<div 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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_consumer_event_listener_8h_source.html b/static/api/cpp/4.0.x/_consumer_event_listener_8h_source.html
new file mode 100644
index 00000000000..17f897de5df
--- /dev/null
+++ b/static/api/cpp/4.0.x/_consumer_event_listener_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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_CONSUMEREVENTLISTENER_H_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_CONSUMEREVENTLISTENER_H_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">class </span><a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a>;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="foldopen" id="foldopen00028" data-start="{" data-end="};">
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_event_listener.html">   28</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_class" href="classpulsar_1_1_consumer_event_listener.html">ConsumerEventListener</a> {</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    <span class="keyword">virtual</span> <a class="code hl_class" href="classpulsar_1_1_consumer_event_listener.html">~ConsumerEventListener</a>(){};</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_event_listener.html#ae6423a9fb10d4c76642bf7f036d43875">   37</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_event_listener.html#ae6423a9fb10d4c76642bf7f036d43875">becameActive</a>(<a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a> consumer, <span c [...]
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span></div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_event_listener.html#aa11768bfa6db7611e95631202d88439e">   46</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_event_listener.html#aa11768bfa6db7611e95631202d88439e">becameInactive</a>(<a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a> consumer, <span [...]
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>};</div>
+</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span><span class="preprocessor">#endif </span><span class="comment">/* PULSAR_CONSUMEREVENTLISTENER_H_ */</span><span class="preprocessor"></span></div>
+<div 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>
+<div class="ttc" id="aclasspulsar_1_1_consumer_event_listener_html_aa11768bfa6db7611e95631202d88439e"><div class="ttname"><a href="classpulsar_1_1_consumer_event_listener.html#aa11768bfa6db7611e95631202d88439e">pulsar::ConsumerEventListener::becameInactive</a></div><div class="ttdeci">virtual void becameInactive(Consumer consumer, int partitionId)=0</div><div class="ttdoc">Notified when the consumer group is changed, and the consumer is still inactive or becomes inactive.</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_event_listener_html_ae6423a9fb10d4c76642bf7f036d43875"><div class="ttname"><a href="classpulsar_1_1_consumer_event_listener.html#ae6423a9fb10d4c76642bf7f036d43875">pulsar::ConsumerEventListener::becameActive</a></div><div class="ttdeci">virtual void becameActive(Consumer consumer, int partitionId)=0</div><div class="ttdoc">Notified when the consumer group is changed, and the consumer becomes active.</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="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition</b> Authentication.h:31</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_consumer_interceptor_8h_source.html b/static/api/cpp/4.0.x/_consumer_interceptor_8h_source.html
new file mode 100644
index 00000000000..a9670739c32
--- /dev/null
+++ b/static/api/cpp/4.0.x/_consumer_interceptor_8h_source.html
@@ -0,0 +1,136 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#ifndef PULSAR_CPP_CONSUMER_INTERCEPTOR_H</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#define PULSAR_CPP_CONSUMER_INTERCEPTOR_H</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;set&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="keyword">class </span><a class="code hl_class" href="classpulsar_1_1_consumer.html">Consumer</a>;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span></div>
+<div class="foldopen" id="foldopen00043" data-start="{" data-end="};">
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_interceptor.html">   43</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_class" href="classpulsar_1_1_consumer_interceptor.html">ConsumerInterceptor</a> {</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>    <span class="keyword">virtual</span> <a class="code hl_class" href="classpulsar_1_1_consumer_interceptor.html">~ConsumerInterceptor</a>() {}</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_interceptor.html#abe9d12923a7f6b3bc56c9596a4bac7bc">   49</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_interceptor.html#abe9d12923a7f6b3bc56c9596a4bac7bc">close</a>() {}</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span></div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_interceptor.html#a390ea752b64d895a6cca218255ba1398">   80</a></span>    <span class="keyword">virtual</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a> <a class="code hl_function" href="classpulsar_1_1_consumer_interceptor.html#a390ea752b64d895a6cca218255ba1398">beforeConsume</a>(<span class="keyword">const</span> <a class="code hl_class" hr [...]
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span></div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_interceptor.html#a9d45879671a6585c244b996e0f8e0eae">   92</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_interceptor.html#a9d45879671a6585c244b996e0f8e0eae">onAcknowledge</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_consumer.html"> [...]
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span></div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_interceptor.html#aaa831e0a16b86333a43ee7fed04ab0a1">  104</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_interceptor.html#aaa831e0a16b86333a43ee7fed04ab0a1">onAcknowledgeCumulative</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_consu [...]
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span>                                         <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageID) = 0;</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span></div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_interceptor.html#a8f11afb9ec2c367cd5006f4a2df45f30">  115</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_consumer_interceptor.html#a8f11afb9ec2c367cd5006f4a2df45f30">onNegativeAcksSend</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_consumer.h [...]
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span>};</div>
+</div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span> </div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span><span class="keyword">typedef</span> std::shared_ptr&lt;ConsumerInterceptor&gt; ConsumerInterceptorPtr;</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span> </div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span><span class="preprocessor">#endif  </span><span class="comment">// PULSAR_CPP_CONSUMER_INTERCEPTOR_H</span></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"><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_consumer_interceptor_html_a390ea752b64d895a6cca218255ba1398"><div class="ttname"><a href="classpulsar_1_1_consumer_interceptor.html#a390ea752b64d895a6cca218255ba1398">pulsar::ConsumerInterceptor::beforeConsume</a></div><div class="ttdeci">virtual Message beforeConsume(const Consumer &amp;consumer, const Message &amp;message)=0</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_interceptor_html_a8f11afb9ec2c367cd5006f4a2df45f30"><div class="ttname"><a href="classpulsar_1_1_consumer_interceptor.html#a8f11afb9ec2c367cd5006f4a2df45f30">pulsar::ConsumerInterceptor::onNegativeAcksSend</a></div><div class="ttdeci">virtual void onNegativeAcksSend(const Consumer &amp;consumer, const std::set&lt; MessageId &gt; &amp;messageIds)=0</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_interceptor_html_a9d45879671a6585c244b996e0f8e0eae"><div class="ttname"><a href="classpulsar_1_1_consumer_interceptor.html#a9d45879671a6585c244b996e0f8e0eae">pulsar::ConsumerInterceptor::onAcknowledge</a></div><div class="ttdeci">virtual void onAcknowledge(const Consumer &amp;consumer, Result result, const MessageId &amp;messageID)=0</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_interceptor_html_aaa831e0a16b86333a43ee7fed04ab0a1"><div class="ttname"><a href="classpulsar_1_1_consumer_interceptor.html#aaa831e0a16b86333a43ee7fed04ab0a1">pulsar::ConsumerInterceptor::onAcknowledgeCumulative</a></div><div class="ttdeci">virtual void onAcknowledgeCumulative(const Consumer &amp;consumer, Result result, const MessageId &amp;messageID)=0</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="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:46</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"><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_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_consumer_type_8h_source.html b/static/api/cpp/4.0.x/_consumer_type_8h_source.html
new file mode 100644
index 00000000000..86865a0e106
--- /dev/null
+++ b/static/api/cpp/4.0.x/_consumer_type_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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_CPP_CONSUMERTYPE_H</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_CPP_CONSUMERTYPE_H</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="foldopen" id="foldopen00025" data-start="{" data-end="};">
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8e">   25</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8e">ConsumerType</a> : uint8_t</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>{</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8ea915cd237340dcd1d212f8d398f3d91ac">   30</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8ea915cd237340dcd1d212f8d398f3d91ac">ConsumerExclusive</a>,</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8eac55370821e835a03c2da742ab27e1705">   36</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8eac55370821e835a03c2da742ab27e1705">ConsumerShared</a>,</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8eaadffd5f0d50b1da36685230cd3f910a1">   41</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8eaadffd5f0d50b1da36685230cd3f910a1">ConsumerFailover</a>,</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span></div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8eacb902cf3781caf307d06e37dc447d5cc">   47</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8eacb902cf3781caf307d06e37dc447d5cc">ConsumerKeyShared</a></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>};</div>
+</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>}</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span> </div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span><span class="preprocessor">#endif  </span><span class="comment">// PULSAR_CPP_CONSUMERTYPE_H</span></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_a9001dd59f719a974dc7b4ef5858dda8e"><div class="ttname"><a href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8e">pulsar::ConsumerType</a></div><div class="ttdeci">ConsumerType</div><div class="ttdef"><b>Definition</b> ConsumerType.h:26</div></div>
+<div class="ttc" id="anamespacepulsar_html_a9001dd59f719a974dc7b4ef5858dda8ea915cd237340dcd1d212f8d398f3d91ac"><div class="ttname"><a href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8ea915cd237340dcd1d212f8d398f3d91ac">pulsar::ConsumerExclusive</a></div><div class="ttdeci">@ ConsumerExclusive</div><div class="ttdef"><b>Definition</b> ConsumerType.h:30</div></div>
+<div class="ttc" id="anamespacepulsar_html_a9001dd59f719a974dc7b4ef5858dda8eaadffd5f0d50b1da36685230cd3f910a1"><div class="ttname"><a href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8eaadffd5f0d50b1da36685230cd3f910a1">pulsar::ConsumerFailover</a></div><div class="ttdeci">@ ConsumerFailover</div><div class="ttdef"><b>Definition</b> ConsumerType.h:41</div></div>
+<div class="ttc" id="anamespacepulsar_html_a9001dd59f719a974dc7b4ef5858dda8eac55370821e835a03c2da742ab27e1705"><div class="ttname"><a href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8eac55370821e835a03c2da742ab27e1705">pulsar::ConsumerShared</a></div><div class="ttdeci">@ ConsumerShared</div><div class="ttdef"><b>Definition</b> ConsumerType.h:36</div></div>
+<div class="ttc" id="anamespacepulsar_html_a9001dd59f719a974dc7b4ef5858dda8eacb902cf3781caf307d06e37dc447d5cc"><div class="ttname"><a href="namespacepulsar.html#a9001dd59f719a974dc7b4ef5858dda8eacb902cf3781caf307d06e37dc447d5cc">pulsar::ConsumerKeyShared</a></div><div class="ttdeci">@ ConsumerKeyShared</div><div class="ttdef"><b>Definition</b> ConsumerType.h:47</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_crypto_key_reader_8h_source.html b/static/api/cpp/4.0.x/_crypto_key_reader_8h_source.html
new file mode 100644
index 00000000000..7d11bb0a34d
--- /dev/null
+++ b/static/api/cpp/4.0.x/_crypto_key_reader_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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef CRYPTOKEYREADER_H_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define CRYPTOKEYREADER_H_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/EncryptionKeyInfo.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span></div>
+<div class="foldopen" id="foldopen00031" data-start="{" data-end="};">
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classpulsar_1_1_crypto_key_reader.html">   31</a></span><span class="keyword">class </span>PULSAR_PUBLIC CryptoKeyReader {</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>    CryptoKeyReader();</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>    <span class="keyword">virtual</span> ~CryptoKeyReader();</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span></div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="classpulsar_1_1_crypto_key_reader.html#a57456a577dc20b00229bb139bf025aee">   52</a></span>    <span class="keyword">virtual</span> <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_crypto_key_reader.html#a57456a577dc20b00229bb139bf025aee">getPublicKey</a>(<span class="keyword">const</span> std [...]
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>                                <a class="code hl_class" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>&amp; encKeyInfo) <span class="keyword">const</span> = 0;</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span></div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="classpulsar_1_1_crypto_key_reader.html#a33a3b281068df053226bb50b59280be0">   63</a></span>    <span class="keyword">virtual</span> <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_crypto_key_reader.html#a33a3b281068df053226bb50b59280be0">getPrivateKey</a>(<span class="keyword">const</span> st [...]
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span>                                 <a class="code hl_class" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>&amp; encKeyInfo) <span class="keyword">const</span> = 0;</div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span> </div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>}; <span class="comment">/* namespace pulsar */</span></div>
+</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span> </div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span><span class="keyword">typedef</span> std::shared_ptr&lt;CryptoKeyReader&gt; CryptoKeyReaderPtr;</div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span> </div>
+<div class="foldopen" id="foldopen00070" data-start="{" data-end="};">
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classpulsar_1_1_default_crypto_key_reader.html">   70</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_function" href="classpulsar_1_1_default_crypto_key_reader.html#ae4b1b1f371da031b371e318aa883d5a0">DefaultCryptoKeyReader</a> : <span class="keyword">public</span> CryptoKeyReader {</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>    std::string publicKeyPath_;</div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>    std::string privateKeyPath_;</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span>    <span class="keywordtype">void</span> readFile(<span class="keyword">const</span> std::string&amp; fileName, std::string&amp; fileContents) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span> </div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="classpulsar_1_1_default_crypto_key_reader.html#ae4b1b1f371da031b371e318aa883d5a0">   86</a></span>    <a class="code hl_function" href="classpulsar_1_1_default_crypto_key_reader.html#ae4b1b1f371da031b371e318aa883d5a0">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 id="l00087" name="l00087"></a><span class="lineno">   87</span>    <a class="code hl_function" href="classpulsar_1_1_default_crypto_key_reader.html#ae4b1b1f371da031b371e318aa883d5a0">~DefaultCryptoKeyReader</a>();</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span></div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="classpulsar_1_1_default_crypto_key_reader.html#a77289250ef58adf938335f241eeb748f">  103</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_default_crypto_key_reader.html#a77289250ef58adf938335f241eeb748f">getPublicKey</a>(<span class="keyword">const</span> std::string&amp; keyName [...]
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>                        <a class="code hl_class" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>&amp; encKeyInfo) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span></div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="classpulsar_1_1_default_crypto_key_reader.html#abef165b0c67acb92eb73283564e8dbb5">  116</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_default_crypto_key_reader.html#abef165b0c67acb92eb73283564e8dbb5">getPrivateKey</a>(<span class="keyword">const</span> std::string&amp; keyNam [...]
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span>                         <a class="code hl_class" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>&amp; encKeyInfo) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span>    <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 id="l00119" name="l00119"></a><span class="lineno">  119</span>}; <span class="comment">/* namespace pulsar */</span></div>
+</div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span> </div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span> </div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span><span class="preprocessor">#endif </span><span class="comment">/* CRYPTOKEYREADER_H_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="aclasspulsar_1_1_crypto_key_reader_html_a33a3b281068df053226bb50b59280be0"><div class="ttname"><a href="classpulsar_1_1_crypto_key_reader.html#a33a3b281068df053226bb50b59280be0">pulsar::CryptoKeyReader::getPrivateKey</a></div><div class="ttdeci">virtual Result getPrivateKey(const std::string &amp;keyName, std::map&lt; std::string, std::string &gt; &amp;metadata, EncryptionKeyInfo &amp;encKeyInfo) const =0</div></div>
+<div class="ttc" id="aclasspulsar_1_1_crypto_key_reader_html_a57456a577dc20b00229bb139bf025aee"><div class="ttname"><a href="classpulsar_1_1_crypto_key_reader.html#a57456a577dc20b00229bb139bf025aee">pulsar::CryptoKeyReader::getPublicKey</a></div><div class="ttdeci">virtual Result getPublicKey(const std::string &amp;keyName, std::map&lt; std::string, std::string &gt; &amp;metadata, EncryptionKeyInfo &amp;encKeyInfo) const =0</div></div>
+<div class="ttc" id="aclasspulsar_1_1_default_crypto_key_reader_html_a77289250ef58adf938335f241eeb748f"><div class="ttname"><a href="classpulsar_1_1_default_crypto_key_reader.html#a77289250ef58adf938335f241eeb748f">pulsar::DefaultCryptoKeyReader::getPublicKey</a></div><div class="ttdeci">Result getPublicKey(const std::string &amp;keyName, std::map&lt; std::string, std::string &gt; &amp;metadata, EncryptionKeyInfo &amp;encKeyInfo) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_default_crypto_key_reader_html_abef165b0c67acb92eb73283564e8dbb5"><div class="ttname"><a href="classpulsar_1_1_default_crypto_key_reader.html#abef165b0c67acb92eb73283564e8dbb5">pulsar::DefaultCryptoKeyReader::getPrivateKey</a></div><div class="ttdeci">Result getPrivateKey(const std::string &amp;keyName, std::map&lt; std::string, std::string &gt; &amp;metadata, EncryptionKeyInfo &amp;encKeyInfo) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_default_crypto_key_reader_html_ae4b1b1f371da031b371e318aa883d5a0"><div class="ttname"><a href="classpulsar_1_1_default_crypto_key_reader.html#ae4b1b1f371da031b371e318aa883d5a0">pulsar::DefaultCryptoKeyReader::DefaultCryptoKeyReader</a></div><div class="ttdeci">DefaultCryptoKeyReader(const std::string &amp;publicKeyPath, const std::string &amp;privateKeyPath)</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"><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_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_dead_letter_policy_8h_source.html b/static/api/cpp/4.0.x/_dead_letter_policy_8h_source.html
new file mode 100644
index 00000000000..2dbea121412
--- /dev/null
+++ b/static/api/cpp/4.0.x/_dead_letter_policy_8h_source.html
@@ -0,0 +1,129 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef DEAD_LETTER_POLICY_HPP_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define DEAD_LETTER_POLICY_HPP_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">struct </span>DeadLetterPolicyImpl;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span></div>
+<div class="foldopen" id="foldopen00036" data-start="{" data-end="};">
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classpulsar_1_1_dead_letter_policy.html">   36</a></span><span class="keyword">class </span>PULSAR_PUBLIC DeadLetterPolicy {</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>    DeadLetterPolicy();</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classpulsar_1_1_dead_letter_policy.html#aff7c4ae5d89b501a238b3a3c1adbd073">   45</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_dead_letter_policy.html#aff7c4ae5d89b501a238b3a3c1adbd073">getDeadLetterTopic</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span></div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="classpulsar_1_1_dead_letter_policy.html#a29c6c16740a31fed4a357f43298f98bc">   52</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_dead_letter_policy.html#a29c6c16740a31fed4a357f43298f98bc">getMaxRedeliverCount</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span></div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="classpulsar_1_1_dead_letter_policy.html#a889b65c5ac7a57ebfcc347c87f5e8555">   59</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_dead_letter_policy.html#a889b65c5ac7a57ebfcc347c87f5e8555">getInitialSubscriptionName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span> </div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span>    <span class="keyword">friend</span> <span class="keyword">class </span>DeadLetterPolicyBuilder;</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span> </div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span>    <span class="keyword">typedef</span> std::shared_ptr&lt;DeadLetterPolicyImpl&gt; DeadLetterPolicyImplPtr;</div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>    DeadLetterPolicyImplPtr impl_;</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span> </div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>    <span class="keyword">explicit</span> DeadLetterPolicy(<span class="keyword">const</span> DeadLetterPolicyImplPtr&amp; impl);</div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span>};</div>
+</div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span> </div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span><span class="preprocessor">#endif </span><span class="comment">/* DEAD_LETTER_POLICY_HPP_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="aclasspulsar_1_1_dead_letter_policy_html_a29c6c16740a31fed4a357f43298f98bc"><div class="ttname"><a href="classpulsar_1_1_dead_letter_policy.html#a29c6c16740a31fed4a357f43298f98bc">pulsar::DeadLetterPolicy::getMaxRedeliverCount</a></div><div class="ttdeci">int getMaxRedeliverCount() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_dead_letter_policy_html_a889b65c5ac7a57ebfcc347c87f5e8555"><div class="ttname"><a href="classpulsar_1_1_dead_letter_policy.html#a889b65c5ac7a57ebfcc347c87f5e8555">pulsar::DeadLetterPolicy::getInitialSubscriptionName</a></div><div class="ttdeci">const std::string &amp; getInitialSubscriptionName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_dead_letter_policy_html_aff7c4ae5d89b501a238b3a3c1adbd073"><div class="ttname"><a href="classpulsar_1_1_dead_letter_policy.html#aff7c4ae5d89b501a238b3a3c1adbd073">pulsar::DeadLetterPolicy::getDeadLetterTopic</a></div><div class="ttdeci">const std::string &amp; getDeadLetterTopic() const</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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_dead_letter_policy_builder_8h_source.html b/static/api/cpp/4.0.x/_dead_letter_policy_builder_8h_source.html
new file mode 100644
index 00000000000..9342fc4a629
--- /dev/null
+++ b/static/api/cpp/4.0.x/_dead_letter_policy_builder_8h_source.html
@@ -0,0 +1,128 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef DEAD_LETTER_POLICY_BUILD_HPP_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define DEAD_LETTER_POLICY_BUILD_HPP_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/DeadLetterPolicy.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">struct </span>DeadLetterPolicyImpl;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span></div>
+<div class="foldopen" id="foldopen00044" data-start="{" data-end="};">
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classpulsar_1_1_dead_letter_policy_builder.html">   44</a></span><span class="keyword">class </span>PULSAR_PUBLIC DeadLetterPolicyBuilder {</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>    DeadLetterPolicyBuilder();</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span></div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classpulsar_1_1_dead_letter_policy_builder.html#a60326f125a4d44099a6eab0d5a64aa22">   56</a></span>    DeadLetterPolicyBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_dead_letter_policy_builder.html#a60326f125a4d44099a6eab0d5a64aa22">deadLetterTopic</a>(<span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_dead_letter_policy_builder. [...]
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span></div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="classpulsar_1_1_dead_letter_policy_builder.html#ad34f023e1018f636ed488c533e645661">   68</a></span>    DeadLetterPolicyBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_dead_letter_policy_builder.html#ad34f023e1018f636ed488c533e645661">maxRedeliverCount</a>(<span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_dead_letter_policy_builder.html#ad34f023 [...]
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span></div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="classpulsar_1_1_dead_letter_policy_builder.html#ac2c21735aeb67ffc97ed49351b1de4b0">   80</a></span>    DeadLetterPolicyBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_dead_letter_policy_builder.html#ac2c21735aeb67ffc97ed49351b1de4b0">initialSubscriptionName</a>(<span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_dead_letter_policy_ [...]
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span></div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="classpulsar_1_1_dead_letter_policy_builder.html#a49862689af514682dae0279889da6c03">   87</a></span>    <a class="code hl_class" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy</a> <a class="code hl_function" href="classpulsar_1_1_dead_letter_policy_builder.html#a49862689af514682dae0279889da6c03">build</a>();</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>    std::shared_ptr&lt;DeadLetterPolicyImpl&gt; impl_;</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>};</div>
+</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span><span class="preprocessor">#endif </span><span class="comment">/* DEAD_LETTER_POLICY_BUILD_HPP_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="aclasspulsar_1_1_dead_letter_policy_builder_html_a49862689af514682dae0279889da6c03"><div class="ttname"><a href="classpulsar_1_1_dead_letter_policy_builder.html#a49862689af514682dae0279889da6c03">pulsar::DeadLetterPolicyBuilder::build</a></div><div class="ttdeci">DeadLetterPolicy build()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_dead_letter_policy_builder_html_a60326f125a4d44099a6eab0d5a64aa22"><div class="ttname"><a href="classpulsar_1_1_dead_letter_policy_builder.html#a60326f125a4d44099a6eab0d5a64aa22">pulsar::DeadLetterPolicyBuilder::deadLetterTopic</a></div><div class="ttdeci">DeadLetterPolicyBuilder &amp; deadLetterTopic(const std::string &amp;deadLetterTopic)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_dead_letter_policy_builder_html_ac2c21735aeb67ffc97ed49351b1de4b0"><div class="ttname"><a href="classpulsar_1_1_dead_letter_policy_builder.html#ac2c21735aeb67ffc97ed49351b1de4b0">pulsar::DeadLetterPolicyBuilder::initialSubscriptionName</a></div><div class="ttdeci">DeadLetterPolicyBuilder &amp; initialSubscriptionName(const std::string &amp;initialSubscriptionName)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_dead_letter_policy_builder_html_ad34f023e1018f636ed488c533e645661"><div class="ttname"><a href="classpulsar_1_1_dead_letter_policy_builder.html#ad34f023e1018f636ed488c533e645661">pulsar::DeadLetterPolicyBuilder::maxRedeliverCount</a></div><div class="ttdeci">DeadLetterPolicyBuilder &amp; maxRedeliverCount(int maxRedeliverCount)</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="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition</b> Authentication.h:31</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_deprecated_exception_8h_source.html b/static/api/cpp/4.0.x/_deprecated_exception_8h_source.html
new file mode 100644
index 00000000000..21113b1ce44
--- /dev/null
+++ b/static/api/cpp/4.0.x/_deprecated_exception_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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef DEPRECATED_EXCEPTION_HPP_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define DEPRECATED_EXCEPTION_HPP_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;stdexcept&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="foldopen" id="foldopen00028" data-start="{" data-end="};">
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_deprecated_exception.html">   28</a></span><span class="keyword">class </span>PULSAR_PUBLIC DeprecatedException : <span class="keyword">public</span> std::runtime_error {</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    <span class="keyword">explicit</span> DeprecatedException(<span class="keyword">const</span> std::string&amp; __arg);</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>    <span class="keyword">static</span> <span class="keyword">const</span> std::string message_prefix;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>};</div>
+</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#endif  </span><span class="comment">// DEPRECATED_EXCEPTION_HPP_</span></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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_encryption_context_8h_source.html b/static/api/cpp/4.0.x/_encryption_context_8h_source.html
new file mode 100644
index 00000000000..b0c53dd40da
--- /dev/null
+++ b/static/api/cpp/4.0.x/_encryption_context_8h_source.html
@@ -0,0 +1,164 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/EncryptionContext.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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<div class="header">
+  <div class="headertitle"><div class="title">EncryptionContext.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;unordered_map&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &quot;CompressionType.h&quot;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &quot;defines.h&quot;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="keyword">namespace </span>proto {</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="keyword">class </span>MessageMetadata;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>}</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="foldopen" id="foldopen00035" data-start="{" data-end="};">
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="structpulsar_1_1_encryption_key.html">   35</a></span><span class="keyword">struct </span>PULSAR_PUBLIC EncryptionKey {</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>    std::string key;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    std::string value;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>    std::unordered_map&lt;std::string, std::string&gt; metadata;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>    EncryptionKey(<span class="keyword">const</span> std::string&amp; key, <span class="keyword">const</span> std::string&amp; value,</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>                  <span class="keyword">const</span> <span class="keyword">decltype</span>(EncryptionKey::metadata)&amp; metadata)</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>        : key(key), value(value), metadata(metadata) {}</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>};</div>
+</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span></div>
+<div class="foldopen" id="foldopen00049" data-start="{" data-end="};">
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_context.html">   49</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_function" href="classpulsar_1_1_encryption_context.html#a8ff4edaad83936352e432326b735c4d4">EncryptionContext</a> {</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>    <span class="keyword">using </span>KeysType = std::vector&lt;EncryptionKey&gt;;</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span></div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_context.html#a636330b55f4d1a5543714caf4176ff23">   56</a></span>    <span class="keyword">const</span> KeysType&amp; <a class="code hl_function" href="classpulsar_1_1_encryption_context.html#a636330b55f4d1a5543714caf4176ff23">keys</a>() const noexcept { <span class="keywordflow">return</span> keys_; }</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span></div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_context.html#a61938b48c838eaf3add9940d084d2287">   61</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_encryption_context.html#a61938b48c838eaf3add9940d084d2287">param</a>() const noexcept { <span class="keywordflow">return</span> param_; }</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span></div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_context.html#a7db99ba19a42a4950e763918d0c3c9d9">   66</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_encryption_context.html#a7db99ba19a42a4950e763918d0c3c9d9">algorithm</a>() const noexcept { <span class="keywordflow">return</span> algorithm_; }</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span></div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_context.html#a35efeda9df0f5828e7af844b179533d9">   71</a></span>    CompressionType <a class="code hl_function" href="classpulsar_1_1_encryption_context.html#a35efeda9df0f5828e7af844b179533d9">compressionType</a>() const noexcept { <span class="keywordflow">return</span> compressionType_; }</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span></div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_context.html#a57240e0afdd8eef75bdaabaff024758a">   76</a></span>    uint32_t <a class="code hl_function" href="classpulsar_1_1_encryption_context.html#a57240e0afdd8eef75bdaabaff024758a">uncompressedMessageSize</a>() const noexcept { <span class="keywordflow">return</span> uncompressedMessageSize_; }</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span></div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_context.html#a31478ba775443304456f9ebc797640b6">   81</a></span>    int32_t <a class="code hl_function" href="classpulsar_1_1_encryption_context.html#a31478ba775443304456f9ebc797640b6">batchSize</a>() const noexcept { <span class="keywordflow">return</span> batchSize_; }</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span></div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_context.html#a8b06f973bf4ecbb1cd3427445d480ecb">   90</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_encryption_context.html#a8b06f973bf4ecbb1cd3427445d480ecb">isDecryptionFailed</a>() const noexcept { <span class="keywordflow">return</span> isDecryptionFailed_; }</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span></div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_context.html#a8ff4edaad83936352e432326b735c4d4">   97</a></span>    <a class="code hl_function" href="classpulsar_1_1_encryption_context.html#a8ff4edaad83936352e432326b735c4d4">EncryptionContext</a>(<span class="keyword">const</span> proto::MessageMetadata&amp;, <span class="keywordtype">bool</span>);</div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span> </div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>    KeysType keys_;</div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>    std::string param_;</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span>    std::string algorithm_;</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span>    CompressionType compressionType_{CompressionNone};</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>    uint32_t uncompressedMessageSize_{0};</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span>    int32_t batchSize_{-1};</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>    <span class="keywordtype">bool</span> isDecryptionFailed_{<span class="keyword">false</span>};</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span> </div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>    <span class="keywordtype">void</span> setDecryptionFailed(<span class="keywordtype">bool</span> failed) <span class="keyword">noexcept</span> { isDecryptionFailed_ = failed; }</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span> </div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ConsumerImpl;</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span>};</div>
+</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_context_html_a31478ba775443304456f9ebc797640b6"><div class="ttname"><a href="classpulsar_1_1_encryption_context.html#a31478ba775443304456f9ebc797640b6">pulsar::EncryptionContext::batchSize</a></div><div class="ttdeci">int32_t batchSize() const noexcept</div><div class="ttdef"><b>Definition</b> EncryptionContext.h:81</div></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_context_html_a35efeda9df0f5828e7af844b179533d9"><div class="ttname"><a href="classpulsar_1_1_encryption_context.html#a35efeda9df0f5828e7af844b179533d9">pulsar::EncryptionContext::compressionType</a></div><div class="ttdeci">CompressionType compressionType() const noexcept</div><div class="ttdef"><b>Definition</b> EncryptionContext.h:71</div></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_context_html_a57240e0afdd8eef75bdaabaff024758a"><div class="ttname"><a href="classpulsar_1_1_encryption_context.html#a57240e0afdd8eef75bdaabaff024758a">pulsar::EncryptionContext::uncompressedMessageSize</a></div><div class="ttdeci">uint32_t uncompressedMessageSize() const noexcept</div><div class="ttdef"><b>Definition</b> EncryptionContext.h:76</div></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_context_html_a61938b48c838eaf3add9940d084d2287"><div class="ttname"><a href="classpulsar_1_1_encryption_context.html#a61938b48c838eaf3add9940d084d2287">pulsar::EncryptionContext::param</a></div><div class="ttdeci">const std::string &amp; param() const noexcept</div><div class="ttdef"><b>Definition</b> EncryptionContext.h:61</div></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_context_html_a636330b55f4d1a5543714caf4176ff23"><div class="ttname"><a href="classpulsar_1_1_encryption_context.html#a636330b55f4d1a5543714caf4176ff23">pulsar::EncryptionContext::keys</a></div><div class="ttdeci">const KeysType &amp; keys() const noexcept</div><div class="ttdef"><b>Definition</b> EncryptionContext.h:56</div></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_context_html_a7db99ba19a42a4950e763918d0c3c9d9"><div class="ttname"><a href="classpulsar_1_1_encryption_context.html#a7db99ba19a42a4950e763918d0c3c9d9">pulsar::EncryptionContext::algorithm</a></div><div class="ttdeci">const std::string &amp; algorithm() const noexcept</div><div class="ttdef"><b>Definition</b> EncryptionContext.h:66</div></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_context_html_a8b06f973bf4ecbb1cd3427445d480ecb"><div class="ttname"><a href="classpulsar_1_1_encryption_context.html#a8b06f973bf4ecbb1cd3427445d480ecb">pulsar::EncryptionContext::isDecryptionFailed</a></div><div class="ttdeci">bool isDecryptionFailed() const noexcept</div><div class="ttdef"><b>Definition</b> EncryptionContext.h:90</div></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_context_html_a8ff4edaad83936352e432326b735c4d4"><div class="ttname"><a href="classpulsar_1_1_encryption_context.html#a8ff4edaad83936352e432326b735c4d4">pulsar::EncryptionContext::EncryptionContext</a></div><div class="ttdeci">EncryptionContext(const proto::MessageMetadata &amp;, bool)</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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_encryption_key_info_8h_source.html b/static/api/cpp/4.0.x/_encryption_key_info_8h_source.html
new file mode 100644
index 00000000000..e7d5ddf4e01
--- /dev/null
+++ b/static/api/cpp/4.0.x/_encryption_key_info_8h_source.html
@@ -0,0 +1,146 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef ENCRYPTIONKEYINFO_H_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define ENCRYPTIONKEYINFO_H_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;iostream&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;map&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="keyword">class </span>EncryptionKeyInfoImpl;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keyword">typedef</span> std::shared_ptr&lt;EncryptionKeyInfoImpl&gt; EncryptionKeyInfoImplPtr;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="foldopen" id="foldopen00035" data-start="{" data-end="};">
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_key_info.html">   35</a></span><span class="keyword">class </span>PULSAR_PUBLIC EncryptionKeyInfo {</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>    <span class="comment">/*</span></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="comment">     * This object contains the encryption key and corresponding metadata which contains</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="comment">     * additional information about the key such as version, timestammp</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="comment">     */</span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>    <span class="keyword">typedef</span> std::map&lt;std::string, std::string&gt; StringMap;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span>    EncryptionKeyInfo();</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span></div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_key_info.html#ab5a636493c0a9dc6c4e8ddbf1d0524d9">   50</a></span>    <a class="code hl_function" href="classpulsar_1_1_encryption_key_info.html#ab5a636493c0a9dc6c4e8ddbf1d0524d9">EncryptionKeyInfo</a>(std::string key, StringMap&amp; metadata);</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span></div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_key_info.html#a39565fd1977a4051305c7dde26549041">   55</a></span>    std::string&amp; <a class="code hl_function" href="classpulsar_1_1_encryption_key_info.html#a39565fd1977a4051305c7dde26549041">getKey</a>();</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span></div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_key_info.html#abb4e0af1eb11ca2aff7e42edb7a70d9c">   62</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_encryption_key_info.html#abb4e0af1eb11ca2aff7e42edb7a70d9c">setKey</a>(<span class="keyword">const</span> std::string&amp; key);</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span></div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_key_info.html#a7cd86c8e529db92625420de3bc2e8532">   67</a></span>    StringMap&amp; <a class="code hl_function" href="classpulsar_1_1_encryption_key_info.html#a7cd86c8e529db92625420de3bc2e8532">getMetadata</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span></div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_key_info.html#a7ae2f1225fb8897ebbcc74cc7753cfaf">   74</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_encryption_key_info.html#a7ae2f1225fb8897ebbcc74cc7753cfaf">setMetadata</a>(StringMap&amp; metadata);</div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span> </div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>    <span class="keyword">explicit</span> EncryptionKeyInfo(<span class="keyword">const</span> EncryptionKeyInfoImplPtr&amp;);</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>    EncryptionKeyInfoImplPtr impl_;</div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span>};</div>
+</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span>} <span class="comment">/* namespace pulsar */</span></div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span><span class="preprocessor">#endif </span><span class="comment">/* ENCRYPTIONKEYINFO_H_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_key_info_html_a39565fd1977a4051305c7dde26549041"><div class="ttname"><a href="classpulsar_1_1_encryption_key_info.html#a39565fd1977a4051305c7dde26549041">pulsar::EncryptionKeyInfo::getKey</a></div><div class="ttdeci">std::string &amp; getKey()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_key_info_html_a7ae2f1225fb8897ebbcc74cc7753cfaf"><div class="ttname"><a href="classpulsar_1_1_encryption_key_info.html#a7ae2f1225fb8897ebbcc74cc7753cfaf">pulsar::EncryptionKeyInfo::setMetadata</a></div><div class="ttdeci">void setMetadata(StringMap &amp;metadata)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_key_info_html_a7cd86c8e529db92625420de3bc2e8532"><div class="ttname"><a href="classpulsar_1_1_encryption_key_info.html#a7cd86c8e529db92625420de3bc2e8532">pulsar::EncryptionKeyInfo::getMetadata</a></div><div class="ttdeci">StringMap &amp; getMetadata(void)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_key_info_html_ab5a636493c0a9dc6c4e8ddbf1d0524d9"><div class="ttname"><a href="classpulsar_1_1_encryption_key_info.html#ab5a636493c0a9dc6c4e8ddbf1d0524d9">pulsar::EncryptionKeyInfo::EncryptionKeyInfo</a></div><div class="ttdeci">EncryptionKeyInfo(std::string key, StringMap &amp;metadata)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_key_info_html_abb4e0af1eb11ca2aff7e42edb7a70d9c"><div class="ttname"><a href="classpulsar_1_1_encryption_key_info.html#abb4e0af1eb11ca2aff7e42edb7a70d9c">pulsar::EncryptionKeyInfo::setKey</a></div><div class="ttdeci">void setKey(const std::string &amp;key)</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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_file_logger_factory_8h_source.html b/static/api/cpp/4.0.x/_file_logger_factory_8h_source.html
new file mode 100644
index 00000000000..728e3c940bb
--- /dev/null
+++ b/static/api/cpp/4.0.x/_file_logger_factory_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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/Logger.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">class </span>FileLoggerFactoryImpl;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span></div>
+<div class="foldopen" id="foldopen00049" data-start="{" data-end="};">
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classpulsar_1_1_file_logger_factory.html">   49</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_function" href="classpulsar_1_1_file_logger_factory.html#a295a3b87a6a73a67bb8f805b3a4769b5">FileLoggerFactory</a> : <span class="keyword">public</span> <a class="code hl_class" href="classpulsar_1_1_logger_factory.html">pulsar::LoggerFactory</a> {</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="classpulsar_1_1_file_logger_factory.html#a295a3b87a6a73a67bb8f805b3a4769b5">   57</a></span>    <a class="code hl_function" href="classpulsar_1_1_file_logger_factory.html#a295a3b87a6a73a67bb8f805b3a4769b5">FileLoggerFactory</a>(Logger::Level level, <span class="keyword">const</span> std::string&amp; logFilePath);</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span> </div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>    <a class="code hl_function" href="classpulsar_1_1_file_logger_factory.html#a295a3b87a6a73a67bb8f805b3a4769b5">~FileLoggerFactory</a>();</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span> </div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="classpulsar_1_1_file_logger_factory.html#a196cbae406d25a82ea6112578ef42126">   61</a></span>    <a class="code hl_class" href="classpulsar_1_1_logger.html">pulsar::Logger</a>* <a class="code hl_function" href="classpulsar_1_1_file_logger_factory.html#a196cbae406d25a82ea6112578ef42126">getLogger</a>(<span class="keyword">const</span> std::string&amp; filename) <span class="keyword">override</span [...]
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span> </div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span>    std::unique_ptr&lt;FileLoggerFactoryImpl&gt; impl_;</div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>};</div>
+</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span> </div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="ttc" id="aclasspulsar_1_1_file_logger_factory_html_a196cbae406d25a82ea6112578ef42126"><div class="ttname"><a href="classpulsar_1_1_file_logger_factory.html#a196cbae406d25a82ea6112578ef42126">pulsar::FileLoggerFactory::getLogger</a></div><div class="ttdeci">pulsar::Logger * getLogger(const std::string &amp;filename) override</div></div>
+<div class="ttc" id="aclasspulsar_1_1_file_logger_factory_html_a295a3b87a6a73a67bb8f805b3a4769b5"><div class="ttname"><a href="classpulsar_1_1_file_logger_factory.html#a295a3b87a6a73a67bb8f805b3a4769b5">pulsar::FileLoggerFactory::FileLoggerFactory</a></div><div class="ttdeci">FileLoggerFactory(Logger::Level level, const std::string &amp;logFilePath)</div></div>
+<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>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_initial_position_8h_source.html b/static/api/cpp/4.0.x/_initial_position_8h_source.html
new file mode 100644
index 00000000000..35213b8221d
--- /dev/null
+++ b/static/api/cpp/4.0.x/_initial_position_8h_source.html
@@ -0,0 +1,105 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_CPP_INITIAL_POSITION_H</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_CPP_INITIAL_POSITION_H</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="keyword">enum</span> InitialPosition : uint8_t</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>{</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>    InitialPositionLatest,</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>    InitialPositionEarliest</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>};</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>}</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="preprocessor">#endif  </span><span class="comment">// PULSAR_CPP_INITIAL_POSITION_H</span></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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_key_shared_policy_8h_source.html b/static/api/cpp/4.0.x/_key_shared_policy_8h_source.html
new file mode 100644
index 00000000000..0bc6687cda6
--- /dev/null
+++ b/static/api/cpp/4.0.x/_key_shared_policy_8h_source.html
@@ -0,0 +1,158 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;utility&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span></div>
+<div class="foldopen" id="foldopen00033" data-start="{" data-end="};">
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="namespacepulsar.html#adaab2afae42f06da675d68501dd253de">   33</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="namespacepulsar.html#adaab2afae42f06da675d68501dd253de">KeySharedMode</a> : uint8_t</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>{</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="namespacepulsar.html#adaab2afae42f06da675d68501dd253dea1dce3e502d8e018e90f97c07b37cde1f">   39</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#adaab2afae42f06da675d68501dd253dea1dce3e502d8e018e90f97c07b37cde1f">AUTO_SPLIT</a> = 0,</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="namespacepulsar.html#adaab2afae42f06da675d68501dd253deaed98d14aabee0f3bc70a0cc7723e5b16">   45</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#adaab2afae42f06da675d68501dd253deaed98d14aabee0f3bc70a0cc7723e5b16">STICKY</a> = 1</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>};</div>
+</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span><span class="keyword">struct </span>KeySharedPolicyImpl;</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span><span class="keyword">typedef</span> std::pair&lt;int, int&gt; StickyRange;</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span><span class="keyword">typedef</span> std::vector&lt;StickyRange&gt; StickyRanges;</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span> </div>
+<div class="foldopen" id="foldopen00053" data-start="{" data-end="};">
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_shared_policy.html">   53</a></span><span class="keyword">class </span>PULSAR_PUBLIC KeySharedPolicy {</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>    KeySharedPolicy();</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>    ~KeySharedPolicy();</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>    KeySharedPolicy(<span class="keyword">const</span> KeySharedPolicy&amp;);</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>    KeySharedPolicy&amp; operator=(<span class="keyword">const</span> KeySharedPolicy&amp;);</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span></div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_shared_policy.html#a421a7227c39ba3c199ec86c40b6b5c75">   65</a></span>    KeySharedPolicy <a class="code hl_function" href="classpulsar_1_1_key_shared_policy.html#a421a7227c39ba3c199ec86c40b6b5c75">clone</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span></div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_shared_policy.html#a7ecef0d315c8955a5223d07f11213aa2">   73</a></span>    KeySharedPolicy&amp; <a class="code hl_function" href="classpulsar_1_1_key_shared_policy.html#a7ecef0d315c8955a5223d07f11213aa2">setKeySharedMode</a>(<a class="code hl_enumeration" href="namespacepulsar.html#adaab2afae42f06da675d68501dd253de">KeySharedMode</a> keySharedMode);</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span></div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_shared_policy.html#a49efb8082529c20caf4eb1e825a0edb2">   78</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#adaab2afae42f06da675d68501dd253de">KeySharedMode</a> <a class="code hl_function" href="classpulsar_1_1_key_shared_policy.html#a49efb8082529c20caf4eb1e825a0edb2">getKeySharedMode</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span></div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_shared_policy.html#a5ebe39804f4e2c7a6cc31d1ef7d58e6a">   90</a></span>    KeySharedPolicy&amp; <a class="code hl_function" href="classpulsar_1_1_key_shared_policy.html#a5ebe39804f4e2c7a6cc31d1ef7d58e6a">setAllowOutOfOrderDelivery</a>(<span class="keywordtype">bool</span> allowOutOfOrderDelivery);</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span></div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_shared_policy.html#ac79edf430990c158e23886c21f6f2fea">   95</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_key_shared_policy.html#ac79edf430990c158e23886c21f6f2fea">isAllowOutOfOrderDelivery</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_shared_policy.html#adc25d81437fa23ab5eec077c3600bc73">  101</a></span>    KeySharedPolicy&amp; <a class="code hl_function" href="classpulsar_1_1_key_shared_policy.html#adc25d81437fa23ab5eec077c3600bc73">setStickyRanges</a>(std::initializer_list&lt;StickyRange&gt; ranges);</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span></div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_shared_policy.html#aa76f2ad0ea56748d2f7c52d5a269d6d9">  106</a></span>    KeySharedPolicy&amp; <a class="code hl_function" href="classpulsar_1_1_key_shared_policy.html#aa76f2ad0ea56748d2f7c52d5a269d6d9">setStickyRanges</a>(<span class="keyword">const</span> StickyRanges&amp; ranges);</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span></div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_shared_policy.html#a99d2a2c1555003f42213b3eb4c6742f6">  111</a></span>    StickyRanges <a class="code hl_function" href="classpulsar_1_1_key_shared_policy.html#a99d2a2c1555003f42213b3eb4c6742f6">getStickyRanges</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>    std::shared_ptr&lt;KeySharedPolicyImpl&gt; impl_;</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span>};</div>
+</div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="ttc" id="aclasspulsar_1_1_key_shared_policy_html_a421a7227c39ba3c199ec86c40b6b5c75"><div class="ttname"><a href="classpulsar_1_1_key_shared_policy.html#a421a7227c39ba3c199ec86c40b6b5c75">pulsar::KeySharedPolicy::clone</a></div><div class="ttdeci">KeySharedPolicy clone() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_key_shared_policy_html_a49efb8082529c20caf4eb1e825a0edb2"><div class="ttname"><a href="classpulsar_1_1_key_shared_policy.html#a49efb8082529c20caf4eb1e825a0edb2">pulsar::KeySharedPolicy::getKeySharedMode</a></div><div class="ttdeci">KeySharedMode getKeySharedMode() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_key_shared_policy_html_a5ebe39804f4e2c7a6cc31d1ef7d58e6a"><div class="ttname"><a href="classpulsar_1_1_key_shared_policy.html#a5ebe39804f4e2c7a6cc31d1ef7d58e6a">pulsar::KeySharedPolicy::setAllowOutOfOrderDelivery</a></div><div class="ttdeci">KeySharedPolicy &amp; setAllowOutOfOrderDelivery(bool allowOutOfOrderDelivery)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_key_shared_policy_html_a7ecef0d315c8955a5223d07f11213aa2"><div class="ttname"><a href="classpulsar_1_1_key_shared_policy.html#a7ecef0d315c8955a5223d07f11213aa2">pulsar::KeySharedPolicy::setKeySharedMode</a></div><div class="ttdeci">KeySharedPolicy &amp; setKeySharedMode(KeySharedMode keySharedMode)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_key_shared_policy_html_a99d2a2c1555003f42213b3eb4c6742f6"><div class="ttname"><a href="classpulsar_1_1_key_shared_policy.html#a99d2a2c1555003f42213b3eb4c6742f6">pulsar::KeySharedPolicy::getStickyRanges</a></div><div class="ttdeci">StickyRanges getStickyRanges() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_key_shared_policy_html_aa76f2ad0ea56748d2f7c52d5a269d6d9"><div class="ttname"><a href="classpulsar_1_1_key_shared_policy.html#aa76f2ad0ea56748d2f7c52d5a269d6d9">pulsar::KeySharedPolicy::setStickyRanges</a></div><div class="ttdeci">KeySharedPolicy &amp; setStickyRanges(const StickyRanges &amp;ranges)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_key_shared_policy_html_ac79edf430990c158e23886c21f6f2fea"><div class="ttname"><a href="classpulsar_1_1_key_shared_policy.html#ac79edf430990c158e23886c21f6f2fea">pulsar::KeySharedPolicy::isAllowOutOfOrderDelivery</a></div><div class="ttdeci">bool isAllowOutOfOrderDelivery() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_key_shared_policy_html_adc25d81437fa23ab5eec077c3600bc73"><div class="ttname"><a href="classpulsar_1_1_key_shared_policy.html#adc25d81437fa23ab5eec077c3600bc73">pulsar::KeySharedPolicy::setStickyRanges</a></div><div class="ttdeci">KeySharedPolicy &amp; setStickyRanges(std::initializer_list&lt; StickyRange &gt; ranges)</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_adaab2afae42f06da675d68501dd253de"><div class="ttname"><a href="namespacepulsar.html#adaab2afae42f06da675d68501dd253de">pulsar::KeySharedMode</a></div><div class="ttdeci">KeySharedMode</div><div class="ttdef"><b>Definition</b> KeySharedPolicy.h:34</div></div>
+<div class="ttc" id="anamespacepulsar_html_adaab2afae42f06da675d68501dd253dea1dce3e502d8e018e90f97c07b37cde1f"><div class="ttname"><a href="namespacepulsar.html#adaab2afae42f06da675d68501dd253dea1dce3e502d8e018e90f97c07b37cde1f">pulsar::AUTO_SPLIT</a></div><div class="ttdeci">@ AUTO_SPLIT</div><div class="ttdef"><b>Definition</b> KeySharedPolicy.h:39</div></div>
+<div class="ttc" id="anamespacepulsar_html_adaab2afae42f06da675d68501dd253deaed98d14aabee0f3bc70a0cc7723e5b16"><div class="ttname"><a href="namespacepulsar.html#adaab2afae42f06da675d68501dd253deaed98d14aabee0f3bc70a0cc7723e5b16">pulsar::STICKY</a></div><div class="ttdeci">@ STICKY</div><div class="ttdef"><b>Definition</b> KeySharedPolicy.h:45</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_key_value_8h_source.html b/static/api/cpp/4.0.x/_key_value_8h_source.html
new file mode 100644
index 00000000000..d5a4d541a16
--- /dev/null
+++ b/static/api/cpp/4.0.x/_key_value_8h_source.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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef KEY_VALUE_HPP_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define KEY_VALUE_HPP_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &quot;Schema.h&quot;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &quot;defines.h&quot;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="keyword">class </span>KeyValueImpl;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span></div>
+<div class="foldopen" id="foldopen00035" data-start="{" data-end="};">
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_value.html">   35</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_function" href="classpulsar_1_1_key_value.html#a724959978481478da4e45ba79092edad">KeyValue</a> {</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_value.html#a724959978481478da4e45ba79092edad">   44</a></span>    <a class="code hl_function" href="classpulsar_1_1_key_value.html#a724959978481478da4e45ba79092edad">KeyValue</a>(std::string &amp;&amp;key, std::string &amp;&amp;value);</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span></div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_value.html#a47a193a9bb59fba4b30691a695861272">   51</a></span>    std::string <a class="code hl_function" href="classpulsar_1_1_key_value.html#a47a193a9bb59fba4b30691a695861272">getKey</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span></div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_value.html#a53158bdf562d12f14c7254e6d4b55b37">   59</a></span>    <span class="keyword">const</span> <span class="keywordtype">void</span> *<a class="code hl_function" href="classpulsar_1_1_key_value.html#a53158bdf562d12f14c7254e6d4b55b37">getValue</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span></div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_value.html#a3c51a0e66e5935c62dfbdb8e0908cf15">   66</a></span>    <span class="keywordtype">size_t</span> <a class="code hl_function" href="classpulsar_1_1_key_value.html#a3c51a0e66e5935c62dfbdb8e0908cf15">getValueLength</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span></div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_value.html#a573eeb6042d04adec7be3d8c46ea2590">   73</a></span>    std::string <a class="code hl_function" href="classpulsar_1_1_key_value.html#a573eeb6042d04adec7be3d8c46ea2590">getValueAsString</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span> </div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>    <span class="keyword">typedef</span> std::shared_ptr&lt;KeyValueImpl&gt; KeyValueImplPtr;</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>    <a class="code hl_function" href="classpulsar_1_1_key_value.html#a724959978481478da4e45ba79092edad">KeyValue</a>(KeyValueImplPtr keyValueImplPtr);</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span>    KeyValueImplPtr impl_;</div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>    <span class="keyword">friend</span> <span class="keyword">class </span>Message;</div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span>    <span class="keyword">friend</span> <span class="keyword">class </span>MessageBuilder;</div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span>};</div>
+</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span><span class="preprocessor">#endif </span><span class="comment">/* KEY_VALUE_HPP_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="aclasspulsar_1_1_key_value_html_a3c51a0e66e5935c62dfbdb8e0908cf15"><div class="ttname"><a href="classpulsar_1_1_key_value.html#a3c51a0e66e5935c62dfbdb8e0908cf15">pulsar::KeyValue::getValueLength</a></div><div class="ttdeci">size_t getValueLength() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_key_value_html_a47a193a9bb59fba4b30691a695861272"><div class="ttname"><a href="classpulsar_1_1_key_value.html#a47a193a9bb59fba4b30691a695861272">pulsar::KeyValue::getKey</a></div><div class="ttdeci">std::string getKey() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_key_value_html_a53158bdf562d12f14c7254e6d4b55b37"><div class="ttname"><a href="classpulsar_1_1_key_value.html#a53158bdf562d12f14c7254e6d4b55b37">pulsar::KeyValue::getValue</a></div><div class="ttdeci">const void * getValue() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_key_value_html_a573eeb6042d04adec7be3d8c46ea2590"><div class="ttname"><a href="classpulsar_1_1_key_value.html#a573eeb6042d04adec7be3d8c46ea2590">pulsar::KeyValue::getValueAsString</a></div><div class="ttdeci">std::string getValueAsString() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_key_value_html_a724959978481478da4e45ba79092edad"><div class="ttname"><a href="classpulsar_1_1_key_value.html#a724959978481478da4e45ba79092edad">pulsar::KeyValue::KeyValue</a></div><div class="ttdeci">KeyValue(std::string &amp;&amp;key, std::string &amp;&amp;value)</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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_logger_8h_source.html b/static/api/cpp/4.0.x/_logger_8h_source.html
new file mode 100644
index 00000000000..4a58a4a46fd
--- /dev/null
+++ b/static/api/cpp/4.0.x/_logger_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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="foldopen" id="foldopen00028" data-start="{" data-end="};">
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_logger.html">   28</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_class" href="classpulsar_1_1_logger.html">Logger</a> {</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    <span class="keyword">enum</span> Level : std::uint8_t</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    {</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>        LEVEL_DEBUG = 0,</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>        LEVEL_INFO = 1,</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>        LEVEL_WARN = 2,</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>        LEVEL_ERROR = 3</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>    };</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>    <span class="keyword">virtual</span> <a class="code hl_class" href="classpulsar_1_1_logger.html">~Logger</a>() {}</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span></div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="classpulsar_1_1_logger.html#a6d09f80fd8f35d5634af94a1305c86af">   46</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_logger.html#a6d09f80fd8f35d5634af94a1305c86af">isEnabled</a>(Level level) = 0;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span></div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="classpulsar_1_1_logger.html#a753385116eb2e4d73c075de94cc2039b">   55</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_logger.html#a753385116eb2e4d73c075de94cc2039b">log</a>(Level level, <span class="keywordtype">int</span> line, <span class="keyword">const</span> std::string&amp; message) = 0;</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>};</div>
+</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="foldopen" id="foldopen00058" data-start="{" data-end="};">
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classpulsar_1_1_logger_factory.html">   58</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_class" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a> {</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>    <span class="keyword">virtual</span> <a class="code hl_class" href="classpulsar_1_1_logger_factory.html">~LoggerFactory</a>() {}</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span></div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="classpulsar_1_1_logger_factory.html#ae2b97aec20f730fe5e77f24ed048380f">   69</a></span>    <span class="keyword">virtual</span> <a class="code hl_class" href="classpulsar_1_1_logger.html">Logger</a>* <a class="code hl_function" href="classpulsar_1_1_logger_factory.html#ae2b97aec20f730fe5e77f24ed048380f">getLogger</a>(<span class="keyword">const</span> std::string&amp; fileName) = 0;</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>};</div>
+</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>}  <span class="comment">// namespace pulsar</span></div>
+<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_factory_html_ae2b97aec20f730fe5e77f24ed048380f"><div class="ttname"><a href="classpulsar_1_1_logger_factory.html#ae2b97aec20f730fe5e77f24ed048380f">pulsar::LoggerFactory::getLogger</a></div><div class="ttdeci">virtual Logger * getLogger(const std::string &amp;fileName)=0</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_logger_html_a6d09f80fd8f35d5634af94a1305c86af"><div class="ttname"><a href="classpulsar_1_1_logger.html#a6d09f80fd8f35d5634af94a1305c86af">pulsar::Logger::isEnabled</a></div><div class="ttdeci">virtual bool isEnabled(Level level)=0</div></div>
+<div class="ttc" id="aclasspulsar_1_1_logger_html_a753385116eb2e4d73c075de94cc2039b"><div class="ttname"><a href="classpulsar_1_1_logger.html#a753385116eb2e4d73c075de94cc2039b">pulsar::Logger::log</a></div><div class="ttdeci">virtual void log(Level level, int line, const std::string &amp;message)=0</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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_message_8h_source.html b/static/api/cpp/4.0.x/_message_8h_source.html
new file mode 100644
index 00000000000..39fe87f4b7d
--- /dev/null
+++ b/static/api/cpp/4.0.x/_message_8h_source.html
@@ -0,0 +1,234 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef MESSAGE_HPP_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define MESSAGE_HPP_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/EncryptionContext.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;map&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;optional&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#include &quot;KeyValue.h&quot;</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="preprocessor">#include &quot;MessageId.h&quot;</span></div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="keyword">namespace </span>proto {</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="keyword">class </span>CommandMessage;</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="keyword">class </span>BrokerEntryMetadata;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="keyword">class </span>MessageMetadata;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="keyword">class </span>SingleMessageMetadata;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>}  <span class="comment">// namespace proto</span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span><span class="keyword">class </span>SharedBuffer;</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="keyword">class </span><a class="code hl_class" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">class </span>MessageImpl;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="foldopen" id="foldopen00046" data-start="{" data-end="};">
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html">   46</a></span><span class="keyword">class </span>PULSAR_PUBLIC Message {</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>    <span class="keyword">typedef</span> std::map&lt;std::string, std::string&gt; StringMap;</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>    Message();</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span></div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#adb69adf5f4e63cf0fb9fef0f7bc7281c">   58</a></span>    <span class="keyword">const</span> StringMap&amp; <a class="code hl_function" href="classpulsar_1_1_message.html#adb69adf5f4e63cf0fb9fef0f7bc7281c">getProperties</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span></div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#ad3e557ed946f94e6964147a8389532bd">   67</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_message.html#ad3e557ed946f94e6964147a8389532bd">hasProperty</a>(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span></div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#a69b6576136ccce73f448e2dbaad8d357">   75</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_message.html#a69b6576136ccce73f448e2dbaad8d357">getProperty</a>(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span></div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#ab485e3ff7dbefa8c0523ebaabef55d5d">   83</a></span>    <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code hl_function" href="classpulsar_1_1_message.html#ab485e3ff7dbefa8c0523ebaabef55d5d">getData</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span></div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#aa47d8ca71292939d4d15e4b543835234">   90</a></span>    std::size_t <a class="code hl_function" href="classpulsar_1_1_message.html#aa47d8ca71292939d4d15e4b543835234">getLength</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span></div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span><span class="preprocessor">#if defined(_MSC_VER) &amp;&amp; !defined(NDEBUG)</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_message.html#a45863405a4d3804cc8415d22d502f5c5">getDataAsString</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#a45863405a4d3804cc8415d22d502f5c5">  103</a></span>    std::string <a class="code hl_function" href="classpulsar_1_1_message.html#a45863405a4d3804cc8415d22d502f5c5">getDataAsString</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span></div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#a2d282f106addab953cf7b831ffb3f067">  111</a></span>    <a class="code hl_class" href="classpulsar_1_1_key_value.html">KeyValue</a> <a class="code hl_function" href="classpulsar_1_1_message.html#a2d282f106addab953cf7b831ffb3f067">getKeyValueData</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span></div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#ad86803a4284b722117abb650c6db0aef">  122</a></span>    <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; <a class="code hl_function" href="classpulsar_1_1_message.html#ad86803a4284b722117abb650c6db0aef">getMessageId</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span></div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#a441a530a2943fc45133690bda73a113a">  128</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_message.html#a441a530a2943fc45133690bda73a113a">setMessageId</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageId) <span class="keyword">const</spa [...]
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span></div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#a7412304904208c662b346d6328b14261">  134</a></span>    int64_t <a class="code hl_function" href="classpulsar_1_1_message.html#a7412304904208c662b346d6328b14261">getIndex</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span></div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#a121f31f3216678187c069c681b3b4d7e">  140</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_message.html#a121f31f3216678187c069c681b3b4d7e">getPartitionKey</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno">  141</span></div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#a171e78738da5932678cfd83c347186bf">  145</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_message.html#a171e78738da5932678cfd83c347186bf">hasPartitionKey</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span></div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#ab237804a174974f73bb73970b0163c65">  152</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_message.html#ab237804a174974f73bb73970b0163c65">getOrderingKey</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span></div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#ad29a0aeda1dbb934e7c3311d85d0aa02">  160</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_message.html#ad29a0aeda1dbb934e7c3311d85d0aa02">hasOrderingKey</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span></div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#ac0a02a1da349789215e6f1a3b6e3f180">  166</a></span>    uint64_t <a class="code hl_function" href="classpulsar_1_1_message.html#ac0a02a1da349789215e6f1a3b6e3f180">getPublishTimestamp</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span></div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#a952c044fb615b886070bcda08f7ba9f6">  171</a></span>    uint64_t <a class="code hl_function" href="classpulsar_1_1_message.html#a952c044fb615b886070bcda08f7ba9f6">getEventTimestamp</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span></div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#adb7dacb620c7fad56f0aa1d6ae52bb88">  176</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_message.html#adb7dacb620c7fad56f0aa1d6ae52bb88">getTopicName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span></div>
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#aa2ec518390487ff59200487f8442b3a5">  181</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_message.html#aa2ec518390487ff59200487f8442b3a5">getRedeliveryCount</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span></div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#a51dee56cd5f71a4d4c2cae8a1b42feef">  186</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_message.html#a51dee56cd5f71a4d4c2cae8a1b42feef">hasSchemaVersion</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span></div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#a4a4d35b3098d18b04f998764d3c2ce76">  193</a></span>    int64_t <a class="code hl_function" href="classpulsar_1_1_message.html#a4a4d35b3098d18b04f998764d3c2ce76">getLongSchemaVersion</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span></div>
+<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#ac39590d8db47e6011c4185664350f52d">  198</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_message.html#ac39590d8db47e6011c4185664350f52d">getSchemaVersion</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00199" name="l00199"></a><span class="lineno">  199</span></div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#a8b6d5d041cd4f1ec05a9490b674efcf0">  205</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_message.html#a8b6d5d041cd4f1ec05a9490b674efcf0">getProducerName</a>() const noexcept;</div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span></div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#a5b231ebe7e0ec8bdab9ecf85f70e1764">  211</a></span>    std::optional&lt;const <a class="code hl_class" href="classpulsar_1_1_encryption_context.html">EncryptionContext</a>*&gt; <a class="code hl_function" href="classpulsar_1_1_message.html#a5b231ebe7e0ec8bdab9ecf85f70e1764">getEncryptionContext</a>() const;</div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span>    <span class="keywordtype">bool</span> operator==(const Message&amp; msg) const;</div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno">  214</span> </div>
+<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span>   protected:</div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span>    typedef std::shared_ptr&lt;MessageImpl&gt; MessageImplPtr;</div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span>    MessageImplPtr impl_;</div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a id="l00219" name="l00219"></a><span class="lineno">  219</span>    Message(MessageImplPtr&amp; impl);</div>
+<div class="line"><a id="l00220" name="l00220"></a><span class="lineno">  220</span>    Message(const <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageId, proto::BrokerEntryMetadata&amp; brokerEntryMetadata,</div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno">  221</span>            proto::MessageMetadata&amp; metadata, SharedBuffer&amp; payload);</div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message.html#aa3c4673ec7b3c99cc3faf9aa931a4531">  223</a></span>    Message(const <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageId, proto::BrokerEntryMetadata&amp; brokerEntryMetadata,</div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span>            proto::MessageMetadata&amp; metadata, SharedBuffer&amp; payload,</div>
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno">  225</span>            proto::SingleMessageMetadata&amp; singleMetadata, const std::shared_ptr&lt;std::<span class="keywordtype">string</span>&gt;&amp; topicName);</div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span>    friend class PartitionedProducerImpl;</div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span>    friend class MultiTopicsConsumerImpl;</div>
+<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span>    friend class MessageBuilder;</div>
+<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span>    friend class ConsumerImpl;</div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno">  230</span>    friend class ProducerImpl;</div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span>    friend class Commands;</div>
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno">  232</span>    friend class BatchMessageContainerBase;</div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno">  233</span>    friend class BatchAcknowledgementTracker;</div>
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno">  234</span>    friend class PulsarWrapper;</div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno">  235</span>    friend class MessageBatch;</div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span>    friend struct OpSendMsg;</div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno">  238</span>    friend PULSAR_PUBLIC std::ostream&amp; operator&lt;&lt;(std::ostream&amp; s, const StringMap&amp; map);</div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno">  239</span>    friend PULSAR_PUBLIC std::ostream&amp; operator&lt;&lt;(std::ostream&amp; s, const Message&amp; msg);</div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span>    friend class PulsarFriend;</div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno">  241</span>};</div>
+</div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno">  242</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno">  243</span> </div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno">  244</span><span class="preprocessor">#endif </span><span class="comment">/* MESSAGE_HPP_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_context_html"><div class="ttname"><a href="classpulsar_1_1_encryption_context.html">pulsar::EncryptionContext</a></div><div class="ttdef"><b>Definition</b> EncryptionContext.h:49</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="aclasspulsar_1_1_message_html_a121f31f3216678187c069c681b3b4d7e"><div class="ttname"><a href="classpulsar_1_1_message.html#a121f31f3216678187c069c681b3b4d7e">pulsar::Message::getPartitionKey</a></div><div class="ttdeci">const std::string &amp; getPartitionKey() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_a171e78738da5932678cfd83c347186bf"><div class="ttname"><a href="classpulsar_1_1_message.html#a171e78738da5932678cfd83c347186bf">pulsar::Message::hasPartitionKey</a></div><div class="ttdeci">bool hasPartitionKey() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_a2d282f106addab953cf7b831ffb3f067"><div class="ttname"><a href="classpulsar_1_1_message.html#a2d282f106addab953cf7b831ffb3f067">pulsar::Message::getKeyValueData</a></div><div class="ttdeci">KeyValue getKeyValueData() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_a441a530a2943fc45133690bda73a113a"><div class="ttname"><a href="classpulsar_1_1_message.html#a441a530a2943fc45133690bda73a113a">pulsar::Message::setMessageId</a></div><div class="ttdeci">void setMessageId(const MessageId &amp;messageId) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_a45863405a4d3804cc8415d22d502f5c5"><div class="ttname"><a href="classpulsar_1_1_message.html#a45863405a4d3804cc8415d22d502f5c5">pulsar::Message::getDataAsString</a></div><div class="ttdeci">std::string getDataAsString() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_a4a4d35b3098d18b04f998764d3c2ce76"><div class="ttname"><a href="classpulsar_1_1_message.html#a4a4d35b3098d18b04f998764d3c2ce76">pulsar::Message::getLongSchemaVersion</a></div><div class="ttdeci">int64_t getLongSchemaVersion() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_a51dee56cd5f71a4d4c2cae8a1b42feef"><div class="ttname"><a href="classpulsar_1_1_message.html#a51dee56cd5f71a4d4c2cae8a1b42feef">pulsar::Message::hasSchemaVersion</a></div><div class="ttdeci">bool hasSchemaVersion() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_a5b231ebe7e0ec8bdab9ecf85f70e1764"><div class="ttname"><a href="classpulsar_1_1_message.html#a5b231ebe7e0ec8bdab9ecf85f70e1764">pulsar::Message::getEncryptionContext</a></div><div class="ttdeci">std::optional&lt; const EncryptionContext * &gt; getEncryptionContext() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_a69b6576136ccce73f448e2dbaad8d357"><div class="ttname"><a href="classpulsar_1_1_message.html#a69b6576136ccce73f448e2dbaad8d357">pulsar::Message::getProperty</a></div><div class="ttdeci">const std::string &amp; getProperty(const std::string &amp;name) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_a7412304904208c662b346d6328b14261"><div class="ttname"><a href="classpulsar_1_1_message.html#a7412304904208c662b346d6328b14261">pulsar::Message::getIndex</a></div><div class="ttdeci">int64_t getIndex() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_a8b6d5d041cd4f1ec05a9490b674efcf0"><div class="ttname"><a href="classpulsar_1_1_message.html#a8b6d5d041cd4f1ec05a9490b674efcf0">pulsar::Message::getProducerName</a></div><div class="ttdeci">const std::string &amp; getProducerName() const noexcept</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_a952c044fb615b886070bcda08f7ba9f6"><div class="ttname"><a href="classpulsar_1_1_message.html#a952c044fb615b886070bcda08f7ba9f6">pulsar::Message::getEventTimestamp</a></div><div class="ttdeci">uint64_t getEventTimestamp() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_aa2ec518390487ff59200487f8442b3a5"><div class="ttname"><a href="classpulsar_1_1_message.html#aa2ec518390487ff59200487f8442b3a5">pulsar::Message::getRedeliveryCount</a></div><div class="ttdeci">int getRedeliveryCount() const</div></div>
+<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_ab237804a174974f73bb73970b0163c65"><div class="ttname"><a href="classpulsar_1_1_message.html#ab237804a174974f73bb73970b0163c65">pulsar::Message::getOrderingKey</a></div><div class="ttdeci">const std::string &amp; getOrderingKey() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_ab485e3ff7dbefa8c0523ebaabef55d5d"><div class="ttname"><a href="classpulsar_1_1_message.html#ab485e3ff7dbefa8c0523ebaabef55d5d">pulsar::Message::getData</a></div><div class="ttdeci">const void * getData() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_ac0a02a1da349789215e6f1a3b6e3f180"><div class="ttname"><a href="classpulsar_1_1_message.html#ac0a02a1da349789215e6f1a3b6e3f180">pulsar::Message::getPublishTimestamp</a></div><div class="ttdeci">uint64_t getPublishTimestamp() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_ac39590d8db47e6011c4185664350f52d"><div class="ttname"><a href="classpulsar_1_1_message.html#ac39590d8db47e6011c4185664350f52d">pulsar::Message::getSchemaVersion</a></div><div class="ttdeci">const std::string &amp; getSchemaVersion() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_ad29a0aeda1dbb934e7c3311d85d0aa02"><div class="ttname"><a href="classpulsar_1_1_message.html#ad29a0aeda1dbb934e7c3311d85d0aa02">pulsar::Message::hasOrderingKey</a></div><div class="ttdeci">bool hasOrderingKey() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_ad3e557ed946f94e6964147a8389532bd"><div class="ttname"><a href="classpulsar_1_1_message.html#ad3e557ed946f94e6964147a8389532bd">pulsar::Message::hasProperty</a></div><div class="ttdeci">bool hasProperty(const std::string &amp;name) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_ad86803a4284b722117abb650c6db0aef"><div class="ttname"><a href="classpulsar_1_1_message.html#ad86803a4284b722117abb650c6db0aef">pulsar::Message::getMessageId</a></div><div class="ttdeci">const MessageId &amp; getMessageId() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_adb69adf5f4e63cf0fb9fef0f7bc7281c"><div class="ttname"><a href="classpulsar_1_1_message.html#adb69adf5f4e63cf0fb9fef0f7bc7281c">pulsar::Message::getProperties</a></div><div class="ttdeci">const StringMap &amp; getProperties() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_adb7dacb620c7fad56f0aa1d6ae52bb88"><div class="ttname"><a href="classpulsar_1_1_message.html#adb7dacb620c7fad56f0aa1d6ae52bb88">pulsar::Message::getTopicName</a></div><div class="ttdeci">const std::string &amp; getTopicName() const</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"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition</b> Authentication.h:31</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_message_batch_8h_source.html b/static/api/cpp/4.0.x/_message_batch_8h_source.html
new file mode 100644
index 00000000000..62d5dcfd469
--- /dev/null
+++ b/static/api/cpp/4.0.x/_message_batch_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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#ifndef LIB_MESSAGE_BATCH_H</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#define LIB_MESSAGE_BATCH_H</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="foldopen" id="foldopen00029" data-start="{" data-end="};">
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_batch.html">   29</a></span><span class="keyword">class </span>PULSAR_PUBLIC MessageBatch {</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    MessageBatch();</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>    MessageBatch&amp; withMessageId(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageId);</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>    MessageBatch&amp; parseFrom(<span class="keyword">const</span> std::string&amp; payload, uint32_t batchSize);</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    MessageBatch&amp; parseFrom(<span class="keyword">const</span> SharedBuffer&amp; payload, uint32_t batchSize);</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>    <span class="keyword">const</span> std::vector&lt;Message&gt;&amp; messages();</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>    <span class="keyword">typedef</span> std::shared_ptr&lt;MessageImpl&gt; MessageImplPtr;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>    MessageImplPtr impl_;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span>    <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a> batchMessage_;</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>    std::vector&lt;Message&gt; batch_;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>};</div>
+</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span><span class="preprocessor">#endif  </span><span class="comment">// LIB_MESSAGE_BATCH_H</span></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:46</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"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition</b> Authentication.h:31</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_message_builder_8h_source.html b/static/api/cpp/4.0.x/_message_builder_8h_source.html
new file mode 100644
index 00000000000..9bc8a0a0d95
--- /dev/null
+++ b/static/api/cpp/4.0.x/_message_builder_8h_source.html
@@ -0,0 +1,180 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef MESSAGE_BUILDER_H</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define MESSAGE_BUILDER_H</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/KeyValue.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;chrono&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="foldopen" id="foldopen00033" data-start="{" data-end="};">
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html">   33</a></span><span class="keyword">class </span>PULSAR_PUBLIC MessageBuilder {</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>    MessageBuilder();</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    <span class="keyword">typedef</span> std::map&lt;std::string, std::string&gt; StringMap;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span></div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#a096971441b85caead9602670d7b901d6">   42</a></span>    <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a> <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a096971441b85caead9602670d7b901d6">build</a>();</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span></div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#a2cc0fde4d3dcc2aae68e6e1588c8d364">   47</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a2cc0fde4d3dcc2aae68e6e1588c8d364">setContent</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span></div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#aeae2c95b0639f36fe80c0ce5256cae16">   55</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#aeae2c95b0639f36fe80c0ce5256cae16">setContent</a>(<span class="keyword">const</span> std::string&amp; data);</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span></div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#a6ebb6e9660a46e883c5467213093abcd">   62</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a6ebb6e9660a46e883c5467213093abcd">setContent</a>(std::string&amp;&amp; data);</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span></div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#a6a9f4daf6548d0c24eae92642b2f9401">   69</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a6a9f4daf6548d0c24eae92642b2f9401">setContent</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_key_value.html">KeyValue</a>&amp; data);</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span></div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#a33536f52b1a0b00d20d57432377a0822">   76</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a33536f52b1a0b00d20d57432377a0822">setAllocatedContent</a>(<span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span></div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#ae59904777c9565d762e4d3230d090ab7">   83</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#ae59904777c9565d762e4d3230d090ab7">setProperty</a>(<span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> std::string&amp; value);</div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span></div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#a90ce43fad4ea63704569ff2a60d02599">   88</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a90ce43fad4ea63704569ff2a60d02599">setProperties</a>(<span class="keyword">const</span> StringMap&amp; properties);</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span></div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#a1efcf691608abcbb3b915a16f5c99bff">   94</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a1efcf691608abcbb3b915a16f5c99bff">setPartitionKey</a>(<span class="keyword">const</span> std::string&amp; partitionKey);</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span></div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#a58e630e1da0388f0a81e2e0474aa346d">  100</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a58e630e1da0388f0a81e2e0474aa346d">setOrderingKey</a>(<span class="keyword">const</span> std::string&amp; orderingKey);</div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span></div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#a43996377452478df5ba3d8255eb8e266">  107</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a43996377452478df5ba3d8255eb8e266">setDeliverAfter</a>(<span class="keyword">const</span> std::chrono::milliseconds delay);</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span></div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#a07e17c0a4721ec937f028ebc0e8d15f4">  115</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a07e17c0a4721ec937f028ebc0e8d15f4">setDeliverAt</a>(uint64_t deliveryTimestamp);</div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span></div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#a47a1c042b9e686c48b406c993e7982e5">  120</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a47a1c042b9e686c48b406c993e7982e5">setEventTimestamp</a>(uint64_t eventTimestamp);</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span></div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#a94372cd317b679b7748149429655a0f3">  138</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a94372cd317b679b7748149429655a0f3">setSequenceId</a>(int64_t sequenceId);</div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span></div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#acde04b110dbccdd7591fad9d4aa9f9c9">  150</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#acde04b110dbccdd7591fad9d4aa9f9c9">setReplicationClusters</a>(<span class="keyword">const</span> std::vector&lt;std::string&gt;&amp; clusters);</div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span></div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#afa199d60f52954c93c07ad6eafebe7dd">  157</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#afa199d60f52954c93c07ad6eafebe7dd">disableReplication</a>(<span class="keywordtype">bool</span> flag);</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno">  158</span></div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html#aae903d24a17c2bcd1c5c34742953618d">  163</a></span>    MessageBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_builder.html#aae903d24a17c2bcd1c5c34742953618d">create</a>();</div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span> </div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span>   <span class="keyword">protected</span>:</div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno">  166</span>    <span class="keyword">const</span> <span class="keywordtype">char</span>* data() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span>    std::size_t size() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span> </div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno">  169</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span>    <span class="keywordtype">void</span> checkMetadata();</div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span>    <span class="keyword">static</span> std::shared_ptr&lt;MessageImpl&gt; createMessageImpl();</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span>    Message::MessageImplPtr impl_;</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span>};</div>
+</div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span><span class="preprocessor">#endif</span></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_a07e17c0a4721ec937f028ebc0e8d15f4"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#a07e17c0a4721ec937f028ebc0e8d15f4">pulsar::MessageBuilder::setDeliverAt</a></div><div class="ttdeci">MessageBuilder &amp; setDeliverAt(uint64_t deliveryTimestamp)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_a096971441b85caead9602670d7b901d6"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#a096971441b85caead9602670d7b901d6">pulsar::MessageBuilder::build</a></div><div class="ttdeci">Message build()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_a1efcf691608abcbb3b915a16f5c99bff"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#a1efcf691608abcbb3b915a16f5c99bff">pulsar::MessageBuilder::setPartitionKey</a></div><div class="ttdeci">MessageBuilder &amp; setPartitionKey(const std::string &amp;partitionKey)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_a2cc0fde4d3dcc2aae68e6e1588c8d364"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#a2cc0fde4d3dcc2aae68e6e1588c8d364">pulsar::MessageBuilder::setContent</a></div><div class="ttdeci">MessageBuilder &amp; setContent(const void *data, size_t size)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_a33536f52b1a0b00d20d57432377a0822"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#a33536f52b1a0b00d20d57432377a0822">pulsar::MessageBuilder::setAllocatedContent</a></div><div class="ttdeci">MessageBuilder &amp; setAllocatedContent(void *data, size_t size)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_a43996377452478df5ba3d8255eb8e266"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#a43996377452478df5ba3d8255eb8e266">pulsar::MessageBuilder::setDeliverAfter</a></div><div class="ttdeci">MessageBuilder &amp; setDeliverAfter(const std::chrono::milliseconds delay)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_a47a1c042b9e686c48b406c993e7982e5"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#a47a1c042b9e686c48b406c993e7982e5">pulsar::MessageBuilder::setEventTimestamp</a></div><div class="ttdeci">MessageBuilder &amp; setEventTimestamp(uint64_t eventTimestamp)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_a58e630e1da0388f0a81e2e0474aa346d"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#a58e630e1da0388f0a81e2e0474aa346d">pulsar::MessageBuilder::setOrderingKey</a></div><div class="ttdeci">MessageBuilder &amp; setOrderingKey(const std::string &amp;orderingKey)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_a6a9f4daf6548d0c24eae92642b2f9401"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#a6a9f4daf6548d0c24eae92642b2f9401">pulsar::MessageBuilder::setContent</a></div><div class="ttdeci">MessageBuilder &amp; setContent(const KeyValue &amp;data)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_a6ebb6e9660a46e883c5467213093abcd"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#a6ebb6e9660a46e883c5467213093abcd">pulsar::MessageBuilder::setContent</a></div><div class="ttdeci">MessageBuilder &amp; setContent(std::string &amp;&amp;data)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_a90ce43fad4ea63704569ff2a60d02599"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#a90ce43fad4ea63704569ff2a60d02599">pulsar::MessageBuilder::setProperties</a></div><div class="ttdeci">MessageBuilder &amp; setProperties(const StringMap &amp;properties)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_a94372cd317b679b7748149429655a0f3"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#a94372cd317b679b7748149429655a0f3">pulsar::MessageBuilder::setSequenceId</a></div><div class="ttdeci">MessageBuilder &amp; setSequenceId(int64_t sequenceId)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_aae903d24a17c2bcd1c5c34742953618d"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#aae903d24a17c2bcd1c5c34742953618d">pulsar::MessageBuilder::create</a></div><div class="ttdeci">MessageBuilder &amp; create()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_acde04b110dbccdd7591fad9d4aa9f9c9"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#acde04b110dbccdd7591fad9d4aa9f9c9">pulsar::MessageBuilder::setReplicationClusters</a></div><div class="ttdeci">MessageBuilder &amp; setReplicationClusters(const std::vector&lt; std::string &gt; &amp;clusters)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_ae59904777c9565d762e4d3230d090ab7"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#ae59904777c9565d762e4d3230d090ab7">pulsar::MessageBuilder::setProperty</a></div><div class="ttdeci">MessageBuilder &amp; setProperty(const std::string &amp;name, const std::string &amp;value)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_aeae2c95b0639f36fe80c0ce5256cae16"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#aeae2c95b0639f36fe80c0ce5256cae16">pulsar::MessageBuilder::setContent</a></div><div class="ttdeci">MessageBuilder &amp; setContent(const std::string &amp;data)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_afa199d60f52954c93c07ad6eafebe7dd"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#afa199d60f52954c93c07ad6eafebe7dd">pulsar::MessageBuilder::disableReplication</a></div><div class="ttdeci">MessageBuilder &amp; disableReplication(bool flag)</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:46</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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_message_id_8h_source.html b/static/api/cpp/4.0.x/_message_id_8h_source.html
new file mode 100644
index 00000000000..b2fa053054e
--- /dev/null
+++ b/static/api/cpp/4.0.x/_message_id_8h_source.html
@@ -0,0 +1,178 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef MESSAGE_ID_H</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define MESSAGE_ID_H</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;iosfwd&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="keyword">class </span>MessageIdImpl;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="foldopen" id="foldopen00034" data-start="{" data-end="};">
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id.html">   34</a></span><span class="keyword">class </span>PULSAR_PUBLIC MessageId {</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>    MessageId&amp; operator=(<span class="keyword">const</span> MessageId&amp;);</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    MessageId();</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span></div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id.html#ac91b200bd36b9d887bebdadb747dd4ee">   51</a></span>    <span class="keyword">explicit</span> <a class="code hl_function" href="classpulsar_1_1_message_id.html#ac91b200bd36b9d887bebdadb747dd4ee">MessageId</a>(int32_t partition, int64_t ledgerId, int64_t entryId, int32_t batchIndex);</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span></div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id.html#a3b0079713b68d0a9d03c269dc2ba2fff">   56</a></span>    <span class="keyword">static</span> <span class="keyword">const</span> MessageId&amp; <a class="code hl_function" href="classpulsar_1_1_message_id.html#a3b0079713b68d0a9d03c269dc2ba2fff">earliest</a>();</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span></div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id.html#af9c67f2e12e102b07c609a8da5740976">   61</a></span>    <span class="keyword">static</span> <span class="keyword">const</span> MessageId&amp; <a class="code hl_function" href="classpulsar_1_1_message_id.html#af9c67f2e12e102b07c609a8da5740976">latest</a>();</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span></div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id.html#aef0c413f2705d0ebdf1577c84af6ba6b">   66</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_message_id.html#aef0c413f2705d0ebdf1577c84af6ba6b">serialize</a>(std::string&amp; result) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span></div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id.html#a7cd2deeae7cbf71436bc8e9cd786c147">   73</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_message_id.html#a7cd2deeae7cbf71436bc8e9cd786c147">getTopicName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span></div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id.html#a3d84665dab3feb64ed00183a322b92f2">   79</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_message_id.html#a3d84665dab3feb64ed00183a322b92f2">setTopicName</a>(<span class="keyword">const</span> std::string&amp; topicName);</div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span></div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id.html#a3768dd552867827d694077ab6d7a55c8">   84</a></span>    <span class="keyword">static</span> MessageId <a class="code hl_function" href="classpulsar_1_1_message_id.html#a3768dd552867827d694077ab6d7a55c8">deserialize</a>(<span class="keyword">const</span> std::string&amp; serializedMessageId);</div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span>    <span class="comment">// These functions compare the message order as stored in bookkeeper</span></div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>    <span class="keywordtype">bool</span> operator&lt;(<span class="keyword">const</span> MessageId&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>    <span class="keywordtype">bool</span> operator&lt;=(<span class="keyword">const</span> MessageId&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>    <span class="keywordtype">bool</span> operator&gt;(<span class="keyword">const</span> MessageId&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>    <span class="keywordtype">bool</span> operator&gt;=(<span class="keyword">const</span> MessageId&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>    <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> MessageId&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span>    <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> MessageId&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span>    int64_t ledgerId() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span>    int64_t entryId() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span>    int32_t batchIndex() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span>    int32_t partition() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span>    int32_t batchSize() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ConsumerImpl;</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ReaderImpl;</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span>    <span class="keyword">friend</span> <span class="keyword">class </span>Message;</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>    <span class="keyword">friend</span> <span class="keyword">class </span>MessageImpl;</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span>    <span class="keyword">friend</span> <span class="keyword">class </span>Commands;</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PartitionedProducerImpl;</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span>    <span class="keyword">friend</span> <span class="keyword">class </span>MultiTopicsConsumerImpl;</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>    <span class="keyword">friend</span> <span class="keyword">class </span>UnAckedMessageTrackerEnabled;</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span>    <span class="keyword">friend</span> <span class="keyword">class </span>BatchAcknowledgementTracker;</div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span>    <span class="keyword">friend</span> <span class="keyword">class </span>NegativeAcksTracker;</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span>    <span class="keyword">friend</span> <span class="keyword">class </span>MessageIdBuilder;</div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ChunkMessageIdImpl;</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span> </div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_message_id.html#a3d84665dab3feb64ed00183a322b92f2">setTopicName</a>(<span class="keyword">const</span> std::shared_ptr&lt;std::string&gt;&amp; topic);</div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span> </div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span>    <span class="keyword">friend</span> PULSAR_PUBLIC std::ostream&amp; operator&lt;&lt;(std::ostream&amp; s, <span class="keyword">const</span> MessageId&amp; messageId);</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span> </div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span>    <span class="keyword">typedef</span> std::shared_ptr&lt;MessageIdImpl&gt; MessageIdImplPtr;</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>    MessageIdImplPtr impl_;</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span> </div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span>    <span class="keyword">explicit</span> MessageId(<span class="keyword">const</span> MessageIdImplPtr&amp; impl);</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span>};</div>
+</div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span> </div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span><span class="keyword">typedef</span> std::vector&lt;MessageId&gt; MessageIdList;</div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span><span class="preprocessor">#endif  </span><span class="comment">// MESSAGE_ID_H</span></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_html_a3768dd552867827d694077ab6d7a55c8"><div class="ttname"><a href="classpulsar_1_1_message_id.html#a3768dd552867827d694077ab6d7a55c8">pulsar::MessageId::deserialize</a></div><div class="ttdeci">static MessageId deserialize(const std::string &amp;serializedMessageId)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_html_a3b0079713b68d0a9d03c269dc2ba2fff"><div class="ttname"><a href="classpulsar_1_1_message_id.html#a3b0079713b68d0a9d03c269dc2ba2fff">pulsar::MessageId::earliest</a></div><div class="ttdeci">static const MessageId &amp; earliest()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_html_a3d84665dab3feb64ed00183a322b92f2"><div class="ttname"><a href="classpulsar_1_1_message_id.html#a3d84665dab3feb64ed00183a322b92f2">pulsar::MessageId::setTopicName</a></div><div class="ttdeci">void setTopicName(const std::string &amp;topicName)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_html_a7cd2deeae7cbf71436bc8e9cd786c147"><div class="ttname"><a href="classpulsar_1_1_message_id.html#a7cd2deeae7cbf71436bc8e9cd786c147">pulsar::MessageId::getTopicName</a></div><div class="ttdeci">const std::string &amp; getTopicName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_html_ac91b200bd36b9d887bebdadb747dd4ee"><div class="ttname"><a href="classpulsar_1_1_message_id.html#ac91b200bd36b9d887bebdadb747dd4ee">pulsar::MessageId::MessageId</a></div><div class="ttdeci">MessageId(int32_t partition, int64_t ledgerId, int64_t entryId, int32_t batchIndex)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_html_aef0c413f2705d0ebdf1577c84af6ba6b"><div class="ttname"><a href="classpulsar_1_1_message_id.html#aef0c413f2705d0ebdf1577c84af6ba6b">pulsar::MessageId::serialize</a></div><div class="ttdeci">void serialize(std::string &amp;result) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_html_af9c67f2e12e102b07c609a8da5740976"><div class="ttname"><a href="classpulsar_1_1_message_id.html#af9c67f2e12e102b07c609a8da5740976">pulsar::MessageId::latest</a></div><div class="ttdeci">static const MessageId &amp; latest()</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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_message_id_builder_8h_source.html b/static/api/cpp/4.0.x/_message_id_builder_8h_source.html
new file mode 100644
index 00000000000..a54a48a5195
--- /dev/null
+++ b/static/api/cpp/4.0.x/_message_id_builder_8h_source.html
@@ -0,0 +1,139 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#include &lt;pulsar/MessageId.h&gt;</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">namespace </span>proto {</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">class </span>MessageIdData;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>}</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span></div>
+<div class="foldopen" id="foldopen00054" data-start="{" data-end="};">
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id_builder.html">   54</a></span><span class="keyword">class </span>PULSAR_PUBLIC MessageIdBuilder {</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>    <span class="keyword">explicit</span> MessageIdBuilder();</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span></div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id_builder.html#adf978433aad184f7bcb11bfbf86f91ee">   61</a></span>    <span class="keyword">static</span> MessageIdBuilder <a class="code hl_function" href="classpulsar_1_1_message_id_builder.html#adf978433aad184f7bcb11bfbf86f91ee">from</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageId);</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span></div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id_builder.html#a46bff6912be430a70ff6d236fdef5d4c">   69</a></span>    <span class="keyword">static</span> MessageIdBuilder <a class="code hl_function" href="classpulsar_1_1_message_id_builder.html#a46bff6912be430a70ff6d236fdef5d4c">from</a>(<span class="keyword">const</span> proto::MessageIdData&amp; messageIdData);</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span></div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id_builder.html#a8fe3a6d2cc7a29f59137ad241887bf0e">   74</a></span>    <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a> <a class="code hl_function" href="classpulsar_1_1_message_id_builder.html#a8fe3a6d2cc7a29f59137ad241887bf0e">build</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span></div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id_builder.html#ae1be301cd7f5d7b5444adaa7d209bf2e">   81</a></span>    MessageIdBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_id_builder.html#ae1be301cd7f5d7b5444adaa7d209bf2e">ledgerId</a>(int64_t <a class="code hl_function" href="classpulsar_1_1_message_id_builder.html#ae1be301cd7f5d7b5444adaa7d209bf2e">ledgerId</a>);</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span></div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id_builder.html#ae891d015703255a676ee39fd738df615">   88</a></span>    MessageIdBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_id_builder.html#ae891d015703255a676ee39fd738df615">entryId</a>(int64_t <a class="code hl_function" href="classpulsar_1_1_message_id_builder.html#ae891d015703255a676ee39fd738df615">entryId</a>);</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span></div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id_builder.html#a40f7cba248437dd6d1d2d29cbc48f5ac">   95</a></span>    MessageIdBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_id_builder.html#a40f7cba248437dd6d1d2d29cbc48f5ac">partition</a>(int32_t <a class="code hl_function" href="classpulsar_1_1_message_id_builder.html#a40f7cba248437dd6d1d2d29cbc48f5ac">partition</a>);</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span></div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id_builder.html#a09df47acda7f3fe3ec8b0b2f7b9f99f9">  102</a></span>    MessageIdBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_id_builder.html#a09df47acda7f3fe3ec8b0b2f7b9f99f9">batchIndex</a>(int32_t <a class="code hl_function" href="classpulsar_1_1_message_id_builder.html#a09df47acda7f3fe3ec8b0b2f7b9f99f9">batchIndex</a>);</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span></div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id_builder.html#a070889cc7ffd6f403883b64f38146f74">  109</a></span>    MessageIdBuilder&amp; <a class="code hl_function" href="classpulsar_1_1_message_id_builder.html#a070889cc7ffd6f403883b64f38146f74">batchSize</a>(int32_t <a class="code hl_function" href="classpulsar_1_1_message_id_builder.html#a070889cc7ffd6f403883b64f38146f74">batchSize</a>);</div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span>    std::shared_ptr&lt;MessageIdImpl&gt; impl_;</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span>};</div>
+</div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span> </div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_builder_html_a070889cc7ffd6f403883b64f38146f74"><div class="ttname"><a href="classpulsar_1_1_message_id_builder.html#a070889cc7ffd6f403883b64f38146f74">pulsar::MessageIdBuilder::batchSize</a></div><div class="ttdeci">MessageIdBuilder &amp; batchSize(int32_t batchSize)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_builder_html_a09df47acda7f3fe3ec8b0b2f7b9f99f9"><div class="ttname"><a href="classpulsar_1_1_message_id_builder.html#a09df47acda7f3fe3ec8b0b2f7b9f99f9">pulsar::MessageIdBuilder::batchIndex</a></div><div class="ttdeci">MessageIdBuilder &amp; batchIndex(int32_t batchIndex)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_builder_html_a40f7cba248437dd6d1d2d29cbc48f5ac"><div class="ttname"><a href="classpulsar_1_1_message_id_builder.html#a40f7cba248437dd6d1d2d29cbc48f5ac">pulsar::MessageIdBuilder::partition</a></div><div class="ttdeci">MessageIdBuilder &amp; partition(int32_t partition)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_builder_html_a46bff6912be430a70ff6d236fdef5d4c"><div class="ttname"><a href="classpulsar_1_1_message_id_builder.html#a46bff6912be430a70ff6d236fdef5d4c">pulsar::MessageIdBuilder::from</a></div><div class="ttdeci">static MessageIdBuilder from(const proto::MessageIdData &amp;messageIdData)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_builder_html_a8fe3a6d2cc7a29f59137ad241887bf0e"><div class="ttname"><a href="classpulsar_1_1_message_id_builder.html#a8fe3a6d2cc7a29f59137ad241887bf0e">pulsar::MessageIdBuilder::build</a></div><div class="ttdeci">MessageId build() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_builder_html_adf978433aad184f7bcb11bfbf86f91ee"><div class="ttname"><a href="classpulsar_1_1_message_id_builder.html#adf978433aad184f7bcb11bfbf86f91ee">pulsar::MessageIdBuilder::from</a></div><div class="ttdeci">static MessageIdBuilder from(const MessageId &amp;messageId)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_builder_html_ae1be301cd7f5d7b5444adaa7d209bf2e"><div class="ttname"><a href="classpulsar_1_1_message_id_builder.html#ae1be301cd7f5d7b5444adaa7d209bf2e">pulsar::MessageIdBuilder::ledgerId</a></div><div class="ttdeci">MessageIdBuilder &amp; ledgerId(int64_t ledgerId)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_builder_html_ae891d015703255a676ee39fd738df615"><div class="ttname"><a href="classpulsar_1_1_message_id_builder.html#ae891d015703255a676ee39fd738df615">pulsar::MessageIdBuilder::entryId</a></div><div class="ttdeci">MessageIdBuilder &amp; entryId(int64_t entryId)</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"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition</b> Authentication.h:31</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_message_routing_policy_8h_source.html b/static/api/cpp/4.0.x/_message_routing_policy_8h_source.html
new file mode 100644
index 00000000000..39098fd9354
--- /dev/null
+++ b/static/api/cpp/4.0.x/_message_routing_policy_8h_source.html
@@ -0,0 +1,138 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_MESSAGE_ROUTING_POLICY_HEADER_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_MESSAGE_ROUTING_POLICY_HEADER_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/DeprecatedException.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/TopicMetadata.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="comment">/*</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="comment"> * Implement this interface to define custom policy giving message to</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="comment"> * partition mapping.</span></div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="foldopen" id="foldopen00035" data-start="{" data-end="};">
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_routing_policy.html">   35</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_class" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a> {</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    <span class="keyword">virtual</span> <a class="code hl_class" href="classpulsar_1_1_message_routing_policy.html">~MessageRoutingPolicy</a>() {}</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span></div>
+<div class="foldopen" id="foldopen00042" data-start="{" data-end="}">
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_routing_policy.html#a8071e740dd2e44ae75a91901e776c310">   42</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_message_routing_policy.html#a8071e740dd2e44ae75a91901e776c310">getPartition</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html" [...]
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>        <span class="keywordflow">throw</span> <a class="code hl_class" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a>(</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span>            <span class="stringliteral">&quot;Use int getPartition(const Message&amp; msg,&quot;</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>            <span class="stringliteral">&quot; const TopicMetadata&amp; topicMetadata)&quot;</span>);</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>    }</div>
+</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span></div>
+<div class="foldopen" id="foldopen00055" data-start="{" data-end="}">
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_routing_policy.html#a080148f08d302d032b0f49d68ada73de">   55</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_message_routing_policy.html#a080148f08d302d032b0f49d68ada73de">getPartition</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html" [...]
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>        <span class="keywordflow">return</span> <a class="code hl_function" href="classpulsar_1_1_message_routing_policy.html#a8071e740dd2e44ae75a91901e776c310">getPartition</a>(msg);</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>    }</div>
+</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>};</div>
+</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span> </div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span><span class="keyword">typedef</span> std::shared_ptr&lt;MessageRoutingPolicy&gt; MessageRoutingPolicyPtr;</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span> </div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span><span class="preprocessor">#endif  </span><span class="comment">// PULSAR_MESSAGE_ROUTING_POLICY_HEADER_</span></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="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:46</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_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_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_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>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_producer_8h_source.html b/static/api/cpp/4.0.x/_producer_8h_source.html
new file mode 100644
index 00000000000..9091f8bc145
--- /dev/null
+++ b/static/api/cpp/4.0.x/_producer_8h_source.html
@@ -0,0 +1,170 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PRODUCER_HPP_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PRODUCER_HPP_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/ProducerConfiguration.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">class </span>ProducerImplBase;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a>)&gt; FlushCallback;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="keyword">typedef</span> std::shared_ptr&lt;ProducerImplBase&gt; ProducerImplBasePtr;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="foldopen" id="foldopen00036" data-start="{" data-end="};">
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html">   36</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_function" href="classpulsar_1_1_producer.html#a013069fbb382f7f3c7dd58522765698b">Producer</a> {</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html#a013069fbb382f7f3c7dd58522765698b">   41</a></span>    <a class="code hl_function" href="classpulsar_1_1_producer.html#a013069fbb382f7f3c7dd58522765698b">Producer</a>();</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span></div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html#ab30cecbdcad0f600c1fcd2783cd6caf3">   46</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_producer.html#ab30cecbdcad0f600c1fcd2783cd6caf3">getTopic</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span></div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html#aba5ac552bef04262ecc989b933ec1d65">   51</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_producer.html#aba5ac552bef04262ecc989b933ec1d65">getProducerName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span></div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html#ad4737186cf798acfb24a167796259443">   58</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_producer.html#ad4737186cf798acfb24a167796259443">send</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Messa [...]
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span></div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html#a32a8c234d42e1951c0357a7562ccdb3a">   84</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_producer.html#a32a8c234d42e1951c0357a7562ccdb3a">send</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Messa [...]
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span></div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html#a3b12ccb62d02e6b16635b2b4d6fd2312">  100</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_producer.html#a3b12ccb62d02e6b16635b2b4d6fd2312">sendAsync</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; msg, <span class="keyword">const</span> SendCallb [...]
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span></div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html#a1cd59ffc4a23162eca39183ba4278146">  106</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_producer.html#a1cd59ffc4a23162eca39183ba4278146">flush</a>();</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span></div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html#a78299ce1bcfa317c8f809707bbce138c">  112</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_producer.html#a78299ce1bcfa317c8f809707bbce138c">flushAsync</a>(<span class="keyword">const</span> FlushCallback&amp; callback);</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span></div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html#a99c6c342f700842a065178730c487d5a">  126</a></span>    int64_t <a class="code hl_function" href="classpulsar_1_1_producer.html#a99c6c342f700842a065178730c487d5a">getLastSequenceId</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span></div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html#a2d452694aca8f7ccb5af5e3a974432c3">  136</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_producer.html#a2d452694aca8f7ccb5af5e3a974432c3">getSchemaVersion</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno">  137</span></div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html#a0b4a93617a0c0f8d172633a7bf8ba06b">  147</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_producer.html#a0b4a93617a0c0f8d172633a7bf8ba06b">close</a>();</div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span></div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html#a2eea6892bf8c28d15c156e5c61832478">  156</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_producer.html#a2eea6892bf8c28d15c156e5c61832478">closeAsync</a>(<span class="keyword">const</span> CloseCallback&amp; callback);</div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span></div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer.html#a0f8b6a4b724a60545a8d427596155f1e">  161</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_producer.html#a0f8b6a4b724a60545a8d427596155f1e">isConnected</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span> </div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno">  163</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span>    <span class="keyword">explicit</span> <a class="code hl_function" href="classpulsar_1_1_producer.html#a013069fbb382f7f3c7dd58522765698b">Producer</a>(<span class="keyword">const</span> ProducerImplBasePtr&amp;);</div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno">  166</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ClientImpl;</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno">  169</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ProducerImpl;</div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span> </div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span>    ProducerImplBasePtr impl_;</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span>    <span class="comment">// For unit test case BatchMessageTest::producerFailureResult only</span></div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span>    <span class="keywordtype">void</span> producerFailMessages(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> result);</div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span>};</div>
+</div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span><span class="preprocessor">#endif </span><span class="comment">/* PRODUCER_HPP_ */</span><span class="preprocessor"></span></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:46</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="aclasspulsar_1_1_producer_html_a013069fbb382f7f3c7dd58522765698b"><div class="ttname"><a href="classpulsar_1_1_producer.html#a013069fbb382f7f3c7dd58522765698b">pulsar::Producer::Producer</a></div><div class="ttdeci">Producer()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_html_a0b4a93617a0c0f8d172633a7bf8ba06b"><div class="ttname"><a href="classpulsar_1_1_producer.html#a0b4a93617a0c0f8d172633a7bf8ba06b">pulsar::Producer::close</a></div><div class="ttdeci">Result close()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_html_a0f8b6a4b724a60545a8d427596155f1e"><div class="ttname"><a href="classpulsar_1_1_producer.html#a0f8b6a4b724a60545a8d427596155f1e">pulsar::Producer::isConnected</a></div><div class="ttdeci">bool isConnected() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_html_a1cd59ffc4a23162eca39183ba4278146"><div class="ttname"><a href="classpulsar_1_1_producer.html#a1cd59ffc4a23162eca39183ba4278146">pulsar::Producer::flush</a></div><div class="ttdeci">Result flush()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_html_a2d452694aca8f7ccb5af5e3a974432c3"><div class="ttname"><a href="classpulsar_1_1_producer.html#a2d452694aca8f7ccb5af5e3a974432c3">pulsar::Producer::getSchemaVersion</a></div><div class="ttdeci">const std::string &amp; getSchemaVersion() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_html_a2eea6892bf8c28d15c156e5c61832478"><div class="ttname"><a href="classpulsar_1_1_producer.html#a2eea6892bf8c28d15c156e5c61832478">pulsar::Producer::closeAsync</a></div><div class="ttdeci">void closeAsync(const CloseCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_html_a32a8c234d42e1951c0357a7562ccdb3a"><div class="ttname"><a href="classpulsar_1_1_producer.html#a32a8c234d42e1951c0357a7562ccdb3a">pulsar::Producer::send</a></div><div class="ttdeci">Result send(const Message &amp;msg, MessageId &amp;messageId)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_html_a3b12ccb62d02e6b16635b2b4d6fd2312"><div class="ttname"><a href="classpulsar_1_1_producer.html#a3b12ccb62d02e6b16635b2b4d6fd2312">pulsar::Producer::sendAsync</a></div><div class="ttdeci">void sendAsync(const Message &amp;msg, const SendCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_html_a78299ce1bcfa317c8f809707bbce138c"><div class="ttname"><a href="classpulsar_1_1_producer.html#a78299ce1bcfa317c8f809707bbce138c">pulsar::Producer::flushAsync</a></div><div class="ttdeci">void flushAsync(const FlushCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_html_a99c6c342f700842a065178730c487d5a"><div class="ttname"><a href="classpulsar_1_1_producer.html#a99c6c342f700842a065178730c487d5a">pulsar::Producer::getLastSequenceId</a></div><div class="ttdeci">int64_t getLastSequenceId() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_html_ab30cecbdcad0f600c1fcd2783cd6caf3"><div class="ttname"><a href="classpulsar_1_1_producer.html#ab30cecbdcad0f600c1fcd2783cd6caf3">pulsar::Producer::getTopic</a></div><div class="ttdeci">const std::string &amp; getTopic() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_html_aba5ac552bef04262ecc989b933ec1d65"><div class="ttname"><a href="classpulsar_1_1_producer.html#aba5ac552bef04262ecc989b933ec1d65">pulsar::Producer::getProducerName</a></div><div class="ttdeci">const std::string &amp; getProducerName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_html_ad4737186cf798acfb24a167796259443"><div class="ttname"><a href="classpulsar_1_1_producer.html#ad4737186cf798acfb24a167796259443">pulsar::Producer::send</a></div><div class="ttdeci">Result send(const Message &amp;msg)</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_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_producer_configuration_8h_source.html b/static/api/cpp/4.0.x/_producer_configuration_8h_source.html
new file mode 100644
index 00000000000..79e2969d9ef
--- /dev/null
+++ b/static/api/cpp/4.0.x/_producer_configuration_8h_source.html
@@ -0,0 +1,335 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_PRODUCERCONFIGURATION_H_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_PRODUCERCONFIGURATION_H_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#include &lt;pulsar/CompressionType.h&gt;</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/CryptoKeyReader.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/MessageRoutingPolicy.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;pulsar/ProducerCryptoFailureAction.h&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;pulsar/ProducerInterceptor.h&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#include &lt;pulsar/Schema.h&gt;</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="preprocessor">#include &lt;set&gt;</span></div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a>, <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageId)&gt; SendCallback;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a>)&gt; CloseCallback;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="keyword">struct </span>ProducerConfigurationImpl;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span><span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span></div>
+<div class="foldopen" id="foldopen00046" data-start="{" data-end="};">
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html">   46</a></span><span class="keyword">class </span>PULSAR_PUBLIC ProducerConfiguration {</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>    <span class="keyword">enum</span> PartitionsRoutingMode : uint8_t</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>    {</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>        UseSinglePartition,</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>        RoundRobinDistribution,</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>        CustomPartition</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>    };</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span>    <span class="keyword">enum</span> HashingScheme : uint8_t</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>    {</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>        Murmur3_32Hash,</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>        BoostHash,</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>        JavaStringHash</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>    };</div>
+<div class="foldopen" id="foldopen00060" data-start="{" data-end="};">
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a46e36919c57f78feed59e12e84a8b346">   60</a></span>    <span class="keyword">enum</span> <a class="code hl_enumeration" href="classpulsar_1_1_producer_configuration.html#a46e36919c57f78feed59e12e84a8b346">BatchingType</a> : uint8_t</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>    {</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a46e36919c57f78feed59e12e84a8b346af2acbf3fc9b0dc49d8af65a148d22e27">   71</a></span>        <a class="code hl_enumvalue" href="classpulsar_1_1_producer_configuration.html#a46e36919c57f78feed59e12e84a8b346af2acbf3fc9b0dc49d8af65a148d22e27">DefaultBatching</a>,</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span></div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a46e36919c57f78feed59e12e84a8b346a291402f9cfb8e9f0fa888722930233ea">   82</a></span>        <a class="code hl_enumvalue" href="classpulsar_1_1_producer_configuration.html#a46e36919c57f78feed59e12e84a8b346a291402f9cfb8e9f0fa888722930233ea">KeyBasedBatching</a></div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span>    };</div>
+</div>
+<div class="foldopen" id="foldopen00084" data-start="{" data-end="};">
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992">   84</a></span>    <span class="keyword">enum</span> <a class="code hl_enumeration" href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992">ProducerAccessMode</a> : uint8_t</div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span>    {</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992a73f8f203fbd16f91a5b123a362bf13e5">   89</a></span>        <a class="code hl_enumvalue" href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992a73f8f203fbd16f91a5b123a362bf13e5">Shared</a> = 0,</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span></div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992abd2cd3c2f4a00e0dc5d5aeb07404831d">   94</a></span>        <a class="code hl_enumvalue" href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992abd2cd3c2f4a00e0dc5d5aeb07404831d">Exclusive</a> = 1,</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span></div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992a9ba09474e854bd3d7094580ed7a3ff29">   99</a></span>        <a class="code hl_enumvalue" href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992a9ba09474e854bd3d7094580ed7a3ff29">WaitForExclusive</a> = 2,</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span></div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992ae142b6a80e588880365caa719fe6ebd8">  105</a></span>        <a class="code hl_enumvalue" href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992ae142b6a80e588880365caa719fe6ebd8">ExclusiveWithFencing</a> = 3</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>    };</div>
+</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span> </div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>    <a class="code hl_class" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>();</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span>    <a class="code hl_class" href="classpulsar_1_1_producer_configuration.html">~ProducerConfiguration</a>();</div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span>    <a class="code hl_class" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp;);</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span>    <a class="code hl_class" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; operator=(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp;);</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span></div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a8286421f85e5da6c71abe10e5f1ee7cd">  119</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a8286421f85e5da6c71abe10e5f1ee7cd">setProducerName</a>(<span class="keyword">const</span> std::string&amp; producerName);</div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span></div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a526741c1516005ef85990002be06baed">  124</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a526741c1516005ef85990002be06baed">getProducerName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span></div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#af161c34b3745581293e6df1e2f8115af">  138</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#af161c34b3745581293e6df1e2f8115af">setSchema</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>&amp; schemaInfo);</div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span></div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a1a38c635f3b3bfb47da547da873f7adc">  143</a></span>    <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a1a38c635f3b3bfb47da547da873f7adc">getSchema</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span></div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a20cd4b67462cb786f097a74fde857cf5">  148</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a20cd4b67462cb786f097a74fde857cf5">setSendTimeout</a>(<span class="keywordtype">int</span> sendTimeoutMs);</div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span></div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a5f3c0ff3a5910207e1731fd1974fe560">  160</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a5f3c0ff3a5910207e1731fd1974fe560">getSendTimeout</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span></div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a9b6c3c9f7e734f0e95cb9c7b301e14eb">  173</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a9b6c3c9f7e734f0e95cb9c7b301e14eb">setInitialSequenceId</a>(int64_t initialSequenceId);</div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span></div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#aad360d7e638bc78e2ed0e9be439d381e">  178</a></span>    int64_t <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#aad360d7e638bc78e2ed0e9be439d381e">getInitialSequenceId</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span></div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a3e4784fdab5471faeddb380849ba60fb">  195</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a3e4784fdab5471faeddb380849ba60fb">setCompressionType</a>(CompressionType compressionType);</div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span></div>
+<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a61ff42e487a29d8b3a180e23add0135d">  200</a></span>    CompressionType <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a61ff42e487a29d8b3a180e23add0135d">getCompressionType</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span></div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#aeb61ed9f97923fb9e65d4e750b145a2f">  213</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#aeb61ed9f97923fb9e65d4e750b145a2f">setMaxPendingMessages</a>(<span class="keywordtype">int</span> maxPendingMessages);</div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno">  214</span></div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ae0300bcf9ccede2a62c550e3eb79cb4b">  218</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#ae0300bcf9ccede2a62c550e3eb79cb4b">getMaxPendingMessages</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00219" name="l00219"></a><span class="lineno">  219</span></div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ac44a68df892d721fad29056f4d89e9c4">  230</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#ac44a68df892d721fad29056f4d89e9c4">setMaxPendingMessagesAcrossPartitions</a>(<span class="keywordtype">int</span> maxPendingMessagesAcrossPartitions);</div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span></div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#abbd51b143f4e4fc8ca5fdfc73c8bfb08">  235</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#abbd51b143f4e4fc8ca5fdfc73c8bfb08">getMaxPendingMessagesAcrossPartitions</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span></div>
+<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a6842f9d4d16d50b3b993df67c043ad38">  245</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a6842f9d4d16d50b3b993df67c043ad38">setPartitionsRoutingMode</a>(<span class="keyword">const</span> PartitionsRoutingMode&amp; mode);</div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno">  246</span></div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ae8e2c09b5a04c154f2830db75426e243">  250</a></span>    PartitionsRoutingMode <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#ae8e2c09b5a04c154f2830db75426e243">getPartitionsRoutingMode</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00251" name="l00251"></a><span class="lineno">  251</span></div>
+<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#abf5a23a8d0eaebba237dca1bbf72a8f2">  258</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#abf5a23a8d0eaebba237dca1bbf72a8f2">setMessageRouter</a>(<span class="keyword">const</span> MessageRoutingPolicyPtr&amp; router);</div>
+<div class="line"><a id="l00259" name="l00259"></a><span class="lineno">  259</span></div>
+<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a815e19bc497485c10a4fca3a53dea52b">  263</a></span>    <span class="keyword">const</span> MessageRoutingPolicyPtr&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a815e19bc497485c10a4fca3a53dea52b">getMessageRouterPtr</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00264" name="l00264"></a><span class="lineno">  264</span></div>
+<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a542691ebedfa1f1fdb706e77067680bb">  283</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a542691ebedfa1f1fdb706e77067680bb">setHashingScheme</a>(<span class="keyword">const</span> HashingScheme&amp; scheme);</div>
+<div class="line"><a id="l00284" name="l00284"></a><span class="lineno">  284</span></div>
+<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#abbfd8d17f8fff203536fd7d84c45bd6e">  288</a></span>    HashingScheme <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#abbfd8d17f8fff203536fd7d84c45bd6e">getHashingScheme</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00289" name="l00289"></a><span class="lineno">  289</span></div>
+<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#af025bdb0f1c7c9c8fe8cfc61f5e7b1e6">  304</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#af025bdb0f1c7c9c8fe8cfc61f5e7b1e6">setLazyStartPartitionedProducers</a>(<span class="keywordtype">bool</span>);</div>
+<div class="line"><a id="l00305" name="l00305"></a><span class="lineno">  305</span></div>
+<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ad1699c4a4b7d8f1b7a2680a2bb6535d4">  309</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#ad1699c4a4b7d8f1b7a2680a2bb6535d4">getLazyStartPartitionedProducers</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00310" name="l00310"></a><span class="lineno">  310</span></div>
+<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ae83e7490292fef0b78619135cc90d6a9">  314</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#ae83e7490292fef0b78619135cc90d6a9">setBlockIfQueueFull</a>(<span class="keywordtype">bool</span>);</div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span></div>
+<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a41b834ead0a7335a406f0c6b8a4a8815">  320</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a41b834ead0a7335a406f0c6b8a4a8815">getBlockIfQueueFull</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00321" name="l00321"></a><span class="lineno">  321</span> </div>
+<div class="line"><a id="l00322" name="l00322"></a><span class="lineno">  322</span>    <span class="comment">// Zero queue size feature will not be supported on consumer end if batching is enabled</span></div>
+<div class="line"><a id="l00323" name="l00323"></a><span class="lineno">  323</span></div>
+<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#af9a1dd93b7a412b3bf3ec79d4083f0e8">  339</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#af9a1dd93b7a412b3bf3ec79d4083f0e8">setBatchingEnabled</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span>&amp; batchingEnabled);</div>
+<div class="line"><a id="l00340" name="l00340"></a><span class="lineno">  340</span></div>
+<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ae41daa9000a2df15120e3c42591d63af">  348</a></span>    <span class="keyword">const</span> <span class="keywordtype">bool</span>&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#ae41daa9000a2df15120e3c42591d63af">getBatchingEnabled</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00349" name="l00349"></a><span class="lineno">  349</span></div>
+<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a1be81019a86b11ed5c685fdc7e899401">  361</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a1be81019a86b11ed5c685fdc7e899401">setBatchingMaxMessages</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp; batchingMaxMe [...]
+<div class="line"><a id="l00362" name="l00362"></a><span class="lineno">  362</span></div>
+<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a2debe3bfacf732b7ad40b0b366223f75">  366</a></span>    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a2debe3bfacf732b7ad40b0b366223f75">getBatchingMaxMessages</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno">  367</span></div>
+<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#abbec0bcbdee8085afd81e94262d72080">  380</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#abbec0bcbdee8085afd81e94262d72080">setBatchingMaxAllowedSizeInBytes</a>(</div>
+<div class="line"><a id="l00381" name="l00381"></a><span class="lineno">  381</span>        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; batchingMaxAllowedSizeInBytes);</div>
+<div class="line"><a id="l00382" name="l00382"></a><span class="lineno">  382</span></div>
+<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a7d650931b85e0ee4f6080ca051a3cb28">  386</a></span>    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a7d650931b85e0ee4f6080ca051a3cb28">getBatchingMaxAllowedSizeInBytes</a>() <span class="keyword">const [...]
+<div class="line"><a id="l00387" name="l00387"></a><span class="lineno">  387</span></div>
+<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a34f1bf46378fba5e065f252f982ce350">  395</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a34f1bf46378fba5e065f252f982ce350">setBatchingMaxPublishDelayMs</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; batchi [...]
+<div class="line"><a id="l00396" name="l00396"></a><span class="lineno">  396</span></div>
+<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ad4e8e1802ddc34d4b600bc0fb9cfe2e6">  400</a></span>    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#ad4e8e1802ddc34d4b600bc0fb9cfe2e6">getBatchingMaxPublishDelayMs</a>() <span class="keyword">const</sp [...]
+<div class="line"><a id="l00401" name="l00401"></a><span class="lineno">  401</span></div>
+<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#abe21bc7bbb3f7d3bbad5102688e715a7">  407</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#abe21bc7bbb3f7d3bbad5102688e715a7">setBatchingType</a>(<a class="code hl_enumeration" href="classpulsar_1_1_producer_configuration.html#a46e36919c57f78feed59e12e84a8b346">BatchingType</a> batchi [...]
+<div class="line"><a id="l00408" name="l00408"></a><span class="lineno">  408</span></div>
+<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a9d92842c76fa71736ee9aec424ff2496">  413</a></span>    <a class="code hl_enumeration" href="classpulsar_1_1_producer_configuration.html#a46e36919c57f78feed59e12e84a8b346">BatchingType</a> <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a9d92842c76fa71736ee9aec424ff2496">getBatchingType</a>() <span class="keyword">const</sp [...]
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno">  414</span></div>
+<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a451838bdf98e10da3fb6183274f4b3e5">  418</a></span>    <span class="keyword">const</span> CryptoKeyReaderPtr <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a451838bdf98e10da3fb6183274f4b3e5">getCryptoKeyReader</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00419" name="l00419"></a><span class="lineno">  419</span></div>
+<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a6934b1d5c42a1f03ad011b20ee5c1724">  426</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a6934b1d5c42a1f03ad011b20ee5c1724">setCryptoKeyReader</a>(CryptoKeyReaderPtr cryptoKeyReader);</div>
+<div class="line"><a id="l00427" name="l00427"></a><span class="lineno">  427</span></div>
+<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a853090927fd2a1eee2ca588a4def3c59">  431</a></span>    ProducerCryptoFailureAction <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a853090927fd2a1eee2ca588a4def3c59">getCryptoFailureAction</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00432" name="l00432"></a><span class="lineno">  432</span></div>
+<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#acf13ddf392d17cc54100f02431e6ba4f">  440</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#acf13ddf392d17cc54100f02431e6ba4f">setCryptoFailureAction</a>(ProducerCryptoFailureAction action);</div>
+<div class="line"><a id="l00441" name="l00441"></a><span class="lineno">  441</span></div>
+<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a5b02a79fabba85be433ab7a9bdb02138">  445</a></span>    <span class="keyword">const</span> std::set&lt;std::string&gt;&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a5b02a79fabba85be433ab7a9bdb02138">getEncryptionKeys</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00446" name="l00446"></a><span class="lineno">  446</span></div>
+<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a33f5238a6da49fca17816d4251af5512">  450</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a33f5238a6da49fca17816d4251af5512">isEncryptionEnabled</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00451" name="l00451"></a><span class="lineno">  451</span></div>
+<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#aea7c7716b8d8e14b0e6a3b4b8ea1b2f0">  464</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#aea7c7716b8d8e14b0e6a3b4b8ea1b2f0">addEncryptionKey</a>(<span class="keyword">const</span> std::string&amp; key);</div>
+<div class="line"><a id="l00465" name="l00465"></a><span class="lineno">  465</span></div>
+<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a7f9020dbb5c22a28277009e83695d5e2">  473</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a7f9020dbb5c22a28277009e83695d5e2">hasProperty</a>(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00474" name="l00474"></a><span class="lineno">  474</span></div>
+<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a15c8b5a9160959e6998aa2615304348c">  481</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a15c8b5a9160959e6998aa2615304348c">getProperty</a>(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00482" name="l00482"></a><span class="lineno">  482</span></div>
+<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a42d2ec7fafe2b0b3e1554572a487f40f">  486</a></span>    std::map&lt;std::string, std::string&gt;&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a42d2ec7fafe2b0b3e1554572a487f40f">getProperties</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00487" name="l00487"></a><span class="lineno">  487</span></div>
+<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ab6ff6f83f46ac85e60ed1611350d1e79">  494</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#ab6ff6f83f46ac85e60ed1611350d1e79">setProperty</a>(<span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> std::string&amp; value);</div>
+<div class="line"><a id="l00495" name="l00495"></a><span class="lineno">  495</span></div>
+<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a45afb46cc1d2083cc58927af5bea3c9d">  499</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a45afb46cc1d2083cc58927af5bea3c9d">setProperties</a>(<span class="keyword">const</span> std::map&lt;std::string, std::string&gt;&amp; properties);</div>
+<div class="line"><a id="l00500" name="l00500"></a><span class="lineno">  500</span></div>
+<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ad79c6bf2280450ba395aea33885738ae">  522</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#ad79c6bf2280450ba395aea33885738ae">setChunkingEnabled</a>(<span class="keywordtype">bool</span> chunkingEnabled);</div>
+<div class="line"><a id="l00523" name="l00523"></a><span class="lineno">  523</span></div>
+<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a6aa210dd18cbd98ccb39ebc2f0978f95">  527</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a6aa210dd18cbd98ccb39ebc2f0978f95">isChunkingEnabled</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00528" name="l00528"></a><span class="lineno">  528</span></div>
+<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a24fde55a4c296eacd3276b8299b4d0b3">  536</a></span>    ProducerConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a24fde55a4c296eacd3276b8299b4d0b3">setAccessMode</a>(<span class="keyword">const</span> <a class="code hl_enumeration" href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943 [...]
+<div class="line"><a id="l00537" name="l00537"></a><span class="lineno">  537</span></div>
+<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#a4bb0a493242b1701c8574eee4fa694e5">  541</a></span>    <a class="code hl_enumeration" href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992">ProducerAccessMode</a> <a class="code hl_function" href="classpulsar_1_1_producer_configuration.html#a4bb0a493242b1701c8574eee4fa694e5">getAccessMode</a>() <span class="keyword">const [...]
+<div class="line"><a id="l00542" name="l00542"></a><span class="lineno">  542</span> </div>
+<div class="line"><a id="l00543" name="l00543"></a><span class="lineno">  543</span>    ProducerConfiguration&amp; intercept(<span class="keyword">const</span> std::vector&lt;ProducerInterceptorPtr&gt;&amp; interceptors);</div>
+<div class="line"><a id="l00544" name="l00544"></a><span class="lineno">  544</span> </div>
+<div class="line"><a id="l00545" name="l00545"></a><span class="lineno">  545</span>    <span class="keyword">const</span> std::vector&lt;ProducerInterceptorPtr&gt;&amp; getInterceptors() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00546" name="l00546"></a><span class="lineno">  546</span> </div>
+<div class="line"><a id="l00547" name="l00547"></a><span class="lineno">  547</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00548" name="l00548"></a><span class="lineno">  548</span>    std::shared_ptr&lt;ProducerConfigurationImpl&gt; impl_;</div>
+<div class="line"><a id="l00549" name="l00549"></a><span class="lineno">  549</span> </div>
+<div class="line"><a id="l00550" name="l00550"></a><span class="lineno">  550</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00551" name="l00551"></a><span class="lineno">  551</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ConsumerImpl;</div>
+<div class="line"><a id="l00552" name="l00552"></a><span class="lineno">  552</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ProducerImpl;</div>
+<div class="line"><a id="l00553" name="l00553"></a><span class="lineno">  553</span>};</div>
+</div>
+<div class="line"><a id="l00554" name="l00554"></a><span class="lineno">  554</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00555" name="l00555"></a><span class="lineno">  555</span><span class="preprocessor">#endif </span><span class="comment">/* PULSAR_PRODUCERCONFIGURATION_H_ */</span><span class="preprocessor"></span></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="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:46</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a15c8b5a9160959e6998aa2615304348c"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a15c8b5a9160959e6998aa2615304348c">pulsar::ProducerConfiguration::getProperty</a></div><div class="ttdeci">const std::string &amp; getProperty(const std::string &amp;name) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a1a38c635f3b3bfb47da547da873f7adc"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a1a38c635f3b3bfb47da547da873f7adc">pulsar::ProducerConfiguration::getSchema</a></div><div class="ttdeci">const SchemaInfo &amp; getSchema() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a1be81019a86b11ed5c685fdc7e899401"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a1be81019a86b11ed5c685fdc7e899401">pulsar::ProducerConfiguration::setBatchingMaxMessages</a></div><div class="ttdeci">ProducerConfiguration &amp; setBatchingMaxMessages(const unsigned int &amp;batchingMaxMessages)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a20cd4b67462cb786f097a74fde857cf5"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a20cd4b67462cb786f097a74fde857cf5">pulsar::ProducerConfiguration::setSendTimeout</a></div><div class="ttdeci">ProducerConfiguration &amp; setSendTimeout(int sendTimeoutMs)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a24fde55a4c296eacd3276b8299b4d0b3"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a24fde55a4c296eacd3276b8299b4d0b3">pulsar::ProducerConfiguration::setAccessMode</a></div><div class="ttdeci">ProducerConfiguration &amp; setAccessMode(const ProducerAccessMode &amp;accessMode)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a2debe3bfacf732b7ad40b0b366223f75"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a2debe3bfacf732b7ad40b0b366223f75">pulsar::ProducerConfiguration::getBatchingMaxMessages</a></div><div class="ttdeci">const unsigned int &amp; getBatchingMaxMessages() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a33f5238a6da49fca17816d4251af5512"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a33f5238a6da49fca17816d4251af5512">pulsar::ProducerConfiguration::isEncryptionEnabled</a></div><div class="ttdeci">bool isEncryptionEnabled() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a34f1bf46378fba5e065f252f982ce350"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a34f1bf46378fba5e065f252f982ce350">pulsar::ProducerConfiguration::setBatchingMaxPublishDelayMs</a></div><div class="ttdeci">ProducerConfiguration &amp; setBatchingMaxPublishDelayMs(const unsigned long &amp;batchingMaxPublishDelayMs)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a3e4784fdab5471faeddb380849ba60fb"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a3e4784fdab5471faeddb380849ba60fb">pulsar::ProducerConfiguration::setCompressionType</a></div><div class="ttdeci">ProducerConfiguration &amp; setCompressionType(CompressionType compressionType)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a41b834ead0a7335a406f0c6b8a4a8815"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a41b834ead0a7335a406f0c6b8a4a8815">pulsar::ProducerConfiguration::getBlockIfQueueFull</a></div><div class="ttdeci">bool getBlockIfQueueFull() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a42d2ec7fafe2b0b3e1554572a487f40f"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a42d2ec7fafe2b0b3e1554572a487f40f">pulsar::ProducerConfiguration::getProperties</a></div><div class="ttdeci">std::map&lt; std::string, std::string &gt; &amp; getProperties() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a451838bdf98e10da3fb6183274f4b3e5"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a451838bdf98e10da3fb6183274f4b3e5">pulsar::ProducerConfiguration::getCryptoKeyReader</a></div><div class="ttdeci">const CryptoKeyReaderPtr getCryptoKeyReader() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a45afb46cc1d2083cc58927af5bea3c9d"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a45afb46cc1d2083cc58927af5bea3c9d">pulsar::ProducerConfiguration::setProperties</a></div><div class="ttdeci">ProducerConfiguration &amp; setProperties(const std::map&lt; std::string, std::string &gt; &amp;properties)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a46e36919c57f78feed59e12e84a8b346"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a46e36919c57f78feed59e12e84a8b346">pulsar::ProducerConfiguration::BatchingType</a></div><div class="ttdeci">BatchingType</div><div class="ttdef"><b>Definition</b> ProducerConfiguration.h:61</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a46e36919c57f78feed59e12e84a8b346a291402f9cfb8e9f0fa888722930233ea"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a46e36919c57f78feed59e12e84a8b346a291402f9cfb8e9f0fa888722930233ea">pulsar::ProducerConfiguration::KeyBasedBatching</a></div><div class="ttdeci">@ KeyBasedBatching</div><div class="ttdef"><b>Definition</b> ProducerConfiguration.h:82</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a46e36919c57f78feed59e12e84a8b346af2acbf3fc9b0dc49d8af65a148d22e27"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a46e36919c57f78feed59e12e84a8b346af2acbf3fc9b0dc49d8af65a148d22e27">pulsar::ProducerConfiguration::DefaultBatching</a></div><div class="ttdeci">@ DefaultBatching</div><div class="ttdef"><b>Definition</b> ProducerConfiguration.h:71</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a4bb0a493242b1701c8574eee4fa694e5"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a4bb0a493242b1701c8574eee4fa694e5">pulsar::ProducerConfiguration::getAccessMode</a></div><div class="ttdeci">ProducerAccessMode getAccessMode() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a526741c1516005ef85990002be06baed"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a526741c1516005ef85990002be06baed">pulsar::ProducerConfiguration::getProducerName</a></div><div class="ttdeci">const std::string &amp; getProducerName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a542691ebedfa1f1fdb706e77067680bb"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a542691ebedfa1f1fdb706e77067680bb">pulsar::ProducerConfiguration::setHashingScheme</a></div><div class="ttdeci">ProducerConfiguration &amp; setHashingScheme(const HashingScheme &amp;scheme)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a5b02a79fabba85be433ab7a9bdb02138"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a5b02a79fabba85be433ab7a9bdb02138">pulsar::ProducerConfiguration::getEncryptionKeys</a></div><div class="ttdeci">const std::set&lt; std::string &gt; &amp; getEncryptionKeys() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a5f3c0ff3a5910207e1731fd1974fe560"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a5f3c0ff3a5910207e1731fd1974fe560">pulsar::ProducerConfiguration::getSendTimeout</a></div><div class="ttdeci">int getSendTimeout() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a61ff42e487a29d8b3a180e23add0135d"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a61ff42e487a29d8b3a180e23add0135d">pulsar::ProducerConfiguration::getCompressionType</a></div><div class="ttdeci">CompressionType getCompressionType() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a6842f9d4d16d50b3b993df67c043ad38"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a6842f9d4d16d50b3b993df67c043ad38">pulsar::ProducerConfiguration::setPartitionsRoutingMode</a></div><div class="ttdeci">ProducerConfiguration &amp; setPartitionsRoutingMode(const PartitionsRoutingMode &amp;mode)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a6934b1d5c42a1f03ad011b20ee5c1724"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a6934b1d5c42a1f03ad011b20ee5c1724">pulsar::ProducerConfiguration::setCryptoKeyReader</a></div><div class="ttdeci">ProducerConfiguration &amp; setCryptoKeyReader(CryptoKeyReaderPtr cryptoKeyReader)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a6aa210dd18cbd98ccb39ebc2f0978f95"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a6aa210dd18cbd98ccb39ebc2f0978f95">pulsar::ProducerConfiguration::isChunkingEnabled</a></div><div class="ttdeci">bool isChunkingEnabled() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a7d650931b85e0ee4f6080ca051a3cb28"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a7d650931b85e0ee4f6080ca051a3cb28">pulsar::ProducerConfiguration::getBatchingMaxAllowedSizeInBytes</a></div><div class="ttdeci">const unsigned long &amp; getBatchingMaxAllowedSizeInBytes() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a7f9020dbb5c22a28277009e83695d5e2"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a7f9020dbb5c22a28277009e83695d5e2">pulsar::ProducerConfiguration::hasProperty</a></div><div class="ttdeci">bool hasProperty(const std::string &amp;name) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a815e19bc497485c10a4fca3a53dea52b"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a815e19bc497485c10a4fca3a53dea52b">pulsar::ProducerConfiguration::getMessageRouterPtr</a></div><div class="ttdeci">const MessageRoutingPolicyPtr &amp; getMessageRouterPtr() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a8286421f85e5da6c71abe10e5f1ee7cd"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a8286421f85e5da6c71abe10e5f1ee7cd">pulsar::ProducerConfiguration::setProducerName</a></div><div class="ttdeci">ProducerConfiguration &amp; setProducerName(const std::string &amp;producerName)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a853090927fd2a1eee2ca588a4def3c59"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a853090927fd2a1eee2ca588a4def3c59">pulsar::ProducerConfiguration::getCryptoFailureAction</a></div><div class="ttdeci">ProducerCryptoFailureAction getCryptoFailureAction() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a9b6c3c9f7e734f0e95cb9c7b301e14eb"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a9b6c3c9f7e734f0e95cb9c7b301e14eb">pulsar::ProducerConfiguration::setInitialSequenceId</a></div><div class="ttdeci">ProducerConfiguration &amp; setInitialSequenceId(int64_t initialSequenceId)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_a9d92842c76fa71736ee9aec424ff2496"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#a9d92842c76fa71736ee9aec424ff2496">pulsar::ProducerConfiguration::getBatchingType</a></div><div class="ttdeci">BatchingType getBatchingType() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_aad360d7e638bc78e2ed0e9be439d381e"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#aad360d7e638bc78e2ed0e9be439d381e">pulsar::ProducerConfiguration::getInitialSequenceId</a></div><div class="ttdeci">int64_t getInitialSequenceId() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ab6ff6f83f46ac85e60ed1611350d1e79"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ab6ff6f83f46ac85e60ed1611350d1e79">pulsar::ProducerConfiguration::setProperty</a></div><div class="ttdeci">ProducerConfiguration &amp; setProperty(const std::string &amp;name, const std::string &amp;value)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_abbd51b143f4e4fc8ca5fdfc73c8bfb08"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#abbd51b143f4e4fc8ca5fdfc73c8bfb08">pulsar::ProducerConfiguration::getMaxPendingMessagesAcrossPartitions</a></div><div class="ttdeci">int getMaxPendingMessagesAcrossPartitions() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_abbec0bcbdee8085afd81e94262d72080"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#abbec0bcbdee8085afd81e94262d72080">pulsar::ProducerConfiguration::setBatchingMaxAllowedSizeInBytes</a></div><div class="ttdeci">ProducerConfiguration &amp; setBatchingMaxAllowedSizeInBytes(const unsigned long &amp;batchingMaxAllowedSizeInBytes)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_abbfd8d17f8fff203536fd7d84c45bd6e"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#abbfd8d17f8fff203536fd7d84c45bd6e">pulsar::ProducerConfiguration::getHashingScheme</a></div><div class="ttdeci">HashingScheme getHashingScheme() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_abe21bc7bbb3f7d3bbad5102688e715a7"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#abe21bc7bbb3f7d3bbad5102688e715a7">pulsar::ProducerConfiguration::setBatchingType</a></div><div class="ttdeci">ProducerConfiguration &amp; setBatchingType(BatchingType batchingType)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_abf5a23a8d0eaebba237dca1bbf72a8f2"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#abf5a23a8d0eaebba237dca1bbf72a8f2">pulsar::ProducerConfiguration::setMessageRouter</a></div><div class="ttdeci">ProducerConfiguration &amp; setMessageRouter(const MessageRoutingPolicyPtr &amp;router)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ac44a68df892d721fad29056f4d89e9c4"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ac44a68df892d721fad29056f4d89e9c4">pulsar::ProducerConfiguration::setMaxPendingMessagesAcrossPartitions</a></div><div class="ttdeci">ProducerConfiguration &amp; setMaxPendingMessagesAcrossPartitions(int maxPendingMessagesAcrossPartitions)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_acf13ddf392d17cc54100f02431e6ba4f"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#acf13ddf392d17cc54100f02431e6ba4f">pulsar::ProducerConfiguration::setCryptoFailureAction</a></div><div class="ttdeci">ProducerConfiguration &amp; setCryptoFailureAction(ProducerCryptoFailureAction action)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ad1699c4a4b7d8f1b7a2680a2bb6535d4"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ad1699c4a4b7d8f1b7a2680a2bb6535d4">pulsar::ProducerConfiguration::getLazyStartPartitionedProducers</a></div><div class="ttdeci">bool getLazyStartPartitionedProducers() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ad4e8e1802ddc34d4b600bc0fb9cfe2e6"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ad4e8e1802ddc34d4b600bc0fb9cfe2e6">pulsar::ProducerConfiguration::getBatchingMaxPublishDelayMs</a></div><div class="ttdeci">const unsigned long &amp; getBatchingMaxPublishDelayMs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ad79c6bf2280450ba395aea33885738ae"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ad79c6bf2280450ba395aea33885738ae">pulsar::ProducerConfiguration::setChunkingEnabled</a></div><div class="ttdeci">ProducerConfiguration &amp; setChunkingEnabled(bool chunkingEnabled)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ad8fa778cac0085456ddee943e19d4992"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992">pulsar::ProducerConfiguration::ProducerAccessMode</a></div><div class="ttdeci">ProducerAccessMode</div><div class="ttdef"><b>Definition</b> ProducerConfiguration.h:85</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ad8fa778cac0085456ddee943e19d4992a73f8f203fbd16f91a5b123a362bf13e5"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992a73f8f203fbd16f91a5b123a362bf13e5">pulsar::ProducerConfiguration::Shared</a></div><div class="ttdeci">@ Shared</div><div class="ttdef"><b>Definition</b> ProducerConfiguration.h:89</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ad8fa778cac0085456ddee943e19d4992a9ba09474e854bd3d7094580ed7a3ff29"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992a9ba09474e854bd3d7094580ed7a3ff29">pulsar::ProducerConfiguration::WaitForExclusive</a></div><div class="ttdeci">@ WaitForExclusive</div><div class="ttdef"><b>Definition</b> ProducerConfiguration.h:99</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ad8fa778cac0085456ddee943e19d4992abd2cd3c2f4a00e0dc5d5aeb07404831d"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992abd2cd3c2f4a00e0dc5d5aeb07404831d">pulsar::ProducerConfiguration::Exclusive</a></div><div class="ttdeci">@ Exclusive</div><div class="ttdef"><b>Definition</b> ProducerConfiguration.h:94</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ad8fa778cac0085456ddee943e19d4992ae142b6a80e588880365caa719fe6ebd8"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ad8fa778cac0085456ddee943e19d4992ae142b6a80e588880365caa719fe6ebd8">pulsar::ProducerConfiguration::ExclusiveWithFencing</a></div><div class="ttdeci">@ ExclusiveWithFencing</div><div class="ttdef"><b>Definition</b> ProducerConfiguration.h:105</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ae0300bcf9ccede2a62c550e3eb79cb4b"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ae0300bcf9ccede2a62c550e3eb79cb4b">pulsar::ProducerConfiguration::getMaxPendingMessages</a></div><div class="ttdeci">int getMaxPendingMessages() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ae41daa9000a2df15120e3c42591d63af"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ae41daa9000a2df15120e3c42591d63af">pulsar::ProducerConfiguration::getBatchingEnabled</a></div><div class="ttdeci">const bool &amp; getBatchingEnabled() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ae83e7490292fef0b78619135cc90d6a9"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ae83e7490292fef0b78619135cc90d6a9">pulsar::ProducerConfiguration::setBlockIfQueueFull</a></div><div class="ttdeci">ProducerConfiguration &amp; setBlockIfQueueFull(bool)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ae8e2c09b5a04c154f2830db75426e243"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ae8e2c09b5a04c154f2830db75426e243">pulsar::ProducerConfiguration::getPartitionsRoutingMode</a></div><div class="ttdeci">PartitionsRoutingMode getPartitionsRoutingMode() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_aea7c7716b8d8e14b0e6a3b4b8ea1b2f0"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#aea7c7716b8d8e14b0e6a3b4b8ea1b2f0">pulsar::ProducerConfiguration::addEncryptionKey</a></div><div class="ttdeci">ProducerConfiguration &amp; addEncryptionKey(const std::string &amp;key)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_aeb61ed9f97923fb9e65d4e750b145a2f"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#aeb61ed9f97923fb9e65d4e750b145a2f">pulsar::ProducerConfiguration::setMaxPendingMessages</a></div><div class="ttdeci">ProducerConfiguration &amp; setMaxPendingMessages(int maxPendingMessages)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_af025bdb0f1c7c9c8fe8cfc61f5e7b1e6"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#af025bdb0f1c7c9c8fe8cfc61f5e7b1e6">pulsar::ProducerConfiguration::setLazyStartPartitionedProducers</a></div><div class="ttdeci">ProducerConfiguration &amp; setLazyStartPartitionedProducers(bool)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_af161c34b3745581293e6df1e2f8115af"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#af161c34b3745581293e6df1e2f8115af">pulsar::ProducerConfiguration::setSchema</a></div><div class="ttdeci">ProducerConfiguration &amp; setSchema(const SchemaInfo &amp;schemaInfo)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_af9a1dd93b7a412b3bf3ec79d4083f0e8"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#af9a1dd93b7a412b3bf3ec79d4083f0e8">pulsar::ProducerConfiguration::setBatchingEnabled</a></div><div class="ttdeci">ProducerConfiguration &amp; setBatchingEnabled(const bool &amp;batchingEnabled)</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:147</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_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_producer_crypto_failure_action_8h_source.html b/static/api/cpp/4.0.x/_producer_crypto_failure_action_8h_source.html
new file mode 100644
index 00000000000..11a8606a86c
--- /dev/null
+++ b/static/api/cpp/4.0.x/_producer_crypto_failure_action_8h_source.html
@@ -0,0 +1,107 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PRODUCERCRYPTOFAILUREACTION_H_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PRODUCERCRYPTOFAILUREACTION_H_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">enum class</span> ProducerCryptoFailureAction : uint8_t</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>{</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>    FAIL,  <span class="comment">// This is the default option to fail send if crypto operation fails</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>    SEND   <span class="comment">// Ignore crypto failure and proceed with sending unencrypted messages</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>};</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>} <span class="comment">/* namespace pulsar */</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="preprocessor">#endif </span><span class="comment">/* PRODUCERCRYPTOFAILUREACTION_H_ */</span><span class="preprocessor"></span></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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_producer_interceptor_8h_source.html b/static/api/cpp/4.0.x/_producer_interceptor_8h_source.html
new file mode 100644
index 00000000000..12b475d466f
--- /dev/null
+++ b/static/api/cpp/4.0.x/_producer_interceptor_8h_source.html
@@ -0,0 +1,132 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#ifndef PULSAR_PRODUCER_INTERCEPTOR_H</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#define PULSAR_PRODUCER_INTERCEPTOR_H</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">class </span><a class="code hl_class" href="classpulsar_1_1_producer.html">Producer</a>;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span></div>
+<div class="foldopen" id="foldopen00042" data-start="{" data-end="};">
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_interceptor.html">   42</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_class" href="classpulsar_1_1_producer_interceptor.html">ProducerInterceptor</a> {</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span>    <span class="keyword">virtual</span> <a class="code hl_class" href="classpulsar_1_1_producer_interceptor.html">~ProducerInterceptor</a>() {}</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span></div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_interceptor.html#a59d5f25b142cd69ebbca13f22842120b">   49</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_producer_interceptor.html#a59d5f25b142cd69ebbca13f22842120b">close</a>() {}</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span></div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_interceptor.html#adc40c03231068fa4a13d6017220d0a79">   80</a></span>    <span class="keyword">virtual</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a> <a class="code hl_function" href="classpulsar_1_1_producer_interceptor.html#adc40c03231068fa4a13d6017220d0a79">beforeSend</a>(<span class="keyword">const</span> <a class="code hl_class" href= [...]
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span></div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_interceptor.html#ad9aba4738d6033218f4a970c53aefab0">   99</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_producer_interceptor.html#ad9aba4738d6033218f4a970c53aefab0">onSendAcknowledgement</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_produce [...]
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>                                       <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageID) = 0;</div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span></div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_interceptor.html#aa4fbfa721d9d9985a304c3d2ce924202">  108</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_producer_interceptor.html#aa4fbfa721d9d9985a304c3d2ce924202">onPartitionsChange</a>(<span class="keyword">const</span> std::string&amp; topicName, <span class="keywordtype">int [...]
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span>};</div>
+</div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span><span class="keyword">typedef</span> std::shared_ptr&lt;ProducerInterceptor&gt; ProducerInterceptorPtr;</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span> </div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span><span class="preprocessor">#endif  </span><span class="comment">// PULSAR_PRODUCER_INTERCEPTOR_H</span></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:46</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="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>
+<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_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="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="aclasspulsar_1_1_producer_interceptor_html_ad9aba4738d6033218f4a970c53aefab0"><div class="ttname"><a href="classpulsar_1_1_producer_interceptor.html#ad9aba4738d6033218f4a970c53aefab0">pulsar::ProducerInterceptor::onSendAcknowledgement</a></div><div class="ttdeci">virtual void onSendAcknowledgement(const Producer &amp;producer, Result result, const Message &amp;message, const MessageId &amp;messageID)=0</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_interceptor_html_adc40c03231068fa4a13d6017220d0a79"><div class="ttname"><a href="classpulsar_1_1_producer_interceptor.html#adc40c03231068fa4a13d6017220d0a79">pulsar::ProducerInterceptor::beforeSend</a></div><div class="ttdeci">virtual Message beforeSend(const Producer &amp;producer, const Message &amp;message)=0</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_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_protobuf_native_schema_8h_source.html b/static/api/cpp/4.0.x/_protobuf_native_schema_8h_source.html
new file mode 100644
index 00000000000..4e724bf3c09
--- /dev/null
+++ b/static/api/cpp/4.0.x/_protobuf_native_schema_8h_source.html
@@ -0,0 +1,103 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#include &lt;google/protobuf/descriptor.h&gt;</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/Schema.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a7dc480604aefdd4119b2e2ee2b9e7764">   33</a></span>PULSAR_PUBLIC <a class="code hl_class" href="classpulsar_1_1_schema_info.html">SchemaInfo</a> <a class="code hl_function" href="namespacepulsar.html#a7dc480604aefdd4119b2e2ee2b9e7764">createProtobufNativeSchema</a>(<span class="keyword">const</span> google::protobuf::Descriptor* descriptor);</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>}  <span class="comment">// namespace pulsar</span></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:147</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_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>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_reader_8h_source.html b/static/api/cpp/4.0.x/_reader_8h_source.html
new file mode 100644
index 00000000000..54639688111
--- /dev/null
+++ b/static/api/cpp/4.0.x/_reader_8h_source.html
@@ -0,0 +1,176 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_READER_HPP_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_READER_HPP_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/ReaderConfiguration.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">class </span>ReaderImpl;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> result, <span class="keywordtype">bool</span> hasMessageAvailable)&gt; HasMessageAvailableCallback;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> result, <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; message)&gt; ReadNextCallback;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span></div>
+<div class="foldopen" id="foldopen00037" data-start="{" data-end="};">
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html">   37</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_function" href="classpulsar_1_1_reader.html#a1c34e49ba3dbca0ff7e23ea9ff94db7b">Reader</a> {</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#a1c34e49ba3dbca0ff7e23ea9ff94db7b">   42</a></span>    <a class="code hl_function" href="classpulsar_1_1_reader.html#a1c34e49ba3dbca0ff7e23ea9ff94db7b">Reader</a>();</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span></div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#a1b682c6bacd8514221bbb6b25c84c051">   47</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_reader.html#a1b682c6bacd8514221bbb6b25c84c051">getTopic</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span></div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#a11756c69a2f5bd99e302a384ae8a9ff4">   59</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_reader.html#a11756c69a2f5bd99e302a384ae8a9ff4">readNext</a>(<a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; msg);</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span></div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#a39c664ea68774721bc0e772b38449b22">   70</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_reader.html#a39c664ea68774721bc0e772b38449b22">readNext</a>(<a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; msg, <span class="keywo [...]
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span></div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#a40ea70f3ba7c44ef26a812cf903acd6f">   77</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader.html#a40ea70f3ba7c44ef26a812cf903acd6f">readNextAsync</a>(<span class="keyword">const</span> ReadNextCallback&amp; callback);</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span></div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#ab15cfd0e35d625d2f1af5936c314b623">   84</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_reader.html#ab15cfd0e35d625d2f1af5936c314b623">close</a>();</div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span></div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#ab234ee3213e8c956cf987f1d3592a35f">   91</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader.html#ab234ee3213e8c956cf987f1d3592a35f">closeAsync</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>&amp; callback);</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span></div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#a97b4bcd925cc6c3ec7c1b756ad69298b">   96</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader.html#a97b4bcd925cc6c3ec7c1b756ad69298b">hasMessageAvailableAsync</a>(<span class="keyword">const</span> HasMessageAvailableCallback&amp; callback);</div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#a7f751b63fba4d4734ff79da590f9fd56">  101</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_reader.html#a7f751b63fba4d4734ff79da590f9fd56">hasMessageAvailable</a>(<span class="keywordtype">bool</span>&amp; <a class="code hl_function" href="classpulsar_1 [...]
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span></div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#a6bec25700e5b4eb7be41625a9bc856bd">  113</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_reader.html#a6bec25700e5b4eb7be41625a9bc856bd">seek</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">Messag [...]
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span></div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#adebdd61a5150777704c8ce8dcec08fc8">  121</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_reader.html#adebdd61a5150777704c8ce8dcec08fc8">seek</a>(uint64_t timestamp);</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span></div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#ab9382fcb52cb2d69c1f744c127b6e1a5">  133</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader.html#ab9382fcb52cb2d69c1f744c127b6e1a5">seekAsync</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; msgId, <span class="keyword">const</span> <a cla [...]
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span></div>
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#a3019e6f349af33c8d4611a327e265b8c">  141</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader.html#a3019e6f349af33c8d4611a327e265b8c">seekAsync</a>(uint64_t timestamp, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>&amp [...]
+<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span></div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#a9eda13274f7b1f880694fc1178ae631d">  146</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_reader.html#a9eda13274f7b1f880694fc1178ae631d">isConnected</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span></div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#a2be8d6367b5af38ddb91020f2a46d202">  152</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader.html#a2be8d6367b5af38ddb91020f2a46d202">getLastMessageIdAsync</a>(<span class="keyword">const</span> GetLastMessageIdCallback&amp; callback);</div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span></div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader.html#a80a0a4dbbe3cf8a9fb074c7556715823">  157</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_reader.html#a80a0a4dbbe3cf8a9fb074c7556715823">getLastMessageId</a>(<a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageId);</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno">  158</span> </div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno">  159</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span>    <span class="keyword">typedef</span> std::shared_ptr&lt;ReaderImpl&gt; ReaderImplPtr;</div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span>    ReaderImplPtr impl_;</div>
+<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span>    <span class="keyword">explicit</span> <a class="code hl_function" href="classpulsar_1_1_reader.html#a1c34e49ba3dbca0ff7e23ea9ff94db7b">Reader</a>(<span class="keyword">const</span> ReaderImplPtr&amp;);</div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno">  163</span> </div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno">  166</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ReaderImpl;</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span>    <span class="keyword">friend</span> <span class="keyword">class </span>TableViewImpl;</div>
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ReaderTest;</div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno">  169</span>};</div>
+</div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span> </div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span><span class="preprocessor">#endif </span><span class="comment">/* PULSAR_READER_HPP_ */</span><span class="preprocessor"></span></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:46</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="aclasspulsar_1_1_reader_html_a11756c69a2f5bd99e302a384ae8a9ff4"><div class="ttname"><a href="classpulsar_1_1_reader.html#a11756c69a2f5bd99e302a384ae8a9ff4">pulsar::Reader::readNext</a></div><div class="ttdeci">Result readNext(Message &amp;msg)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_a1b682c6bacd8514221bbb6b25c84c051"><div class="ttname"><a href="classpulsar_1_1_reader.html#a1b682c6bacd8514221bbb6b25c84c051">pulsar::Reader::getTopic</a></div><div class="ttdeci">const std::string &amp; getTopic() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_a1c34e49ba3dbca0ff7e23ea9ff94db7b"><div class="ttname"><a href="classpulsar_1_1_reader.html#a1c34e49ba3dbca0ff7e23ea9ff94db7b">pulsar::Reader::Reader</a></div><div class="ttdeci">Reader()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_a2be8d6367b5af38ddb91020f2a46d202"><div class="ttname"><a href="classpulsar_1_1_reader.html#a2be8d6367b5af38ddb91020f2a46d202">pulsar::Reader::getLastMessageIdAsync</a></div><div class="ttdeci">void getLastMessageIdAsync(const GetLastMessageIdCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_a3019e6f349af33c8d4611a327e265b8c"><div class="ttname"><a href="classpulsar_1_1_reader.html#a3019e6f349af33c8d4611a327e265b8c">pulsar::Reader::seekAsync</a></div><div class="ttdeci">void seekAsync(uint64_t timestamp, const ResultCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_a39c664ea68774721bc0e772b38449b22"><div class="ttname"><a href="classpulsar_1_1_reader.html#a39c664ea68774721bc0e772b38449b22">pulsar::Reader::readNext</a></div><div class="ttdeci">Result readNext(Message &amp;msg, int timeoutMs)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_a40ea70f3ba7c44ef26a812cf903acd6f"><div class="ttname"><a href="classpulsar_1_1_reader.html#a40ea70f3ba7c44ef26a812cf903acd6f">pulsar::Reader::readNextAsync</a></div><div class="ttdeci">void readNextAsync(const ReadNextCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_a6bec25700e5b4eb7be41625a9bc856bd"><div class="ttname"><a href="classpulsar_1_1_reader.html#a6bec25700e5b4eb7be41625a9bc856bd">pulsar::Reader::seek</a></div><div class="ttdeci">Result seek(const MessageId &amp;msgId)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_a7f751b63fba4d4734ff79da590f9fd56"><div class="ttname"><a href="classpulsar_1_1_reader.html#a7f751b63fba4d4734ff79da590f9fd56">pulsar::Reader::hasMessageAvailable</a></div><div class="ttdeci">Result hasMessageAvailable(bool &amp;hasMessageAvailable)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_a80a0a4dbbe3cf8a9fb074c7556715823"><div class="ttname"><a href="classpulsar_1_1_reader.html#a80a0a4dbbe3cf8a9fb074c7556715823">pulsar::Reader::getLastMessageId</a></div><div class="ttdeci">Result getLastMessageId(MessageId &amp;messageId)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_a97b4bcd925cc6c3ec7c1b756ad69298b"><div class="ttname"><a href="classpulsar_1_1_reader.html#a97b4bcd925cc6c3ec7c1b756ad69298b">pulsar::Reader::hasMessageAvailableAsync</a></div><div class="ttdeci">void hasMessageAvailableAsync(const HasMessageAvailableCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_a9eda13274f7b1f880694fc1178ae631d"><div class="ttname"><a href="classpulsar_1_1_reader.html#a9eda13274f7b1f880694fc1178ae631d">pulsar::Reader::isConnected</a></div><div class="ttdeci">bool isConnected() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_ab15cfd0e35d625d2f1af5936c314b623"><div class="ttname"><a href="classpulsar_1_1_reader.html#ab15cfd0e35d625d2f1af5936c314b623">pulsar::Reader::close</a></div><div class="ttdeci">Result close()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_ab234ee3213e8c956cf987f1d3592a35f"><div class="ttname"><a href="classpulsar_1_1_reader.html#ab234ee3213e8c956cf987f1d3592a35f">pulsar::Reader::closeAsync</a></div><div class="ttdeci">void closeAsync(const ResultCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_ab9382fcb52cb2d69c1f744c127b6e1a5"><div class="ttname"><a href="classpulsar_1_1_reader.html#ab9382fcb52cb2d69c1f744c127b6e1a5">pulsar::Reader::seekAsync</a></div><div class="ttdeci">void seekAsync(const MessageId &amp;msgId, const ResultCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html_adebdd61a5150777704c8ce8dcec08fc8"><div class="ttname"><a href="classpulsar_1_1_reader.html#adebdd61a5150777704c8ce8dcec08fc8">pulsar::Reader::seek</a></div><div class="ttdeci">Result seek(uint64_t timestamp)</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_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</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>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_reader_configuration_8h_source.html b/static/api/cpp/4.0.x/_reader_configuration_8h_source.html
new file mode 100644
index 00000000000..78478116b69
--- /dev/null
+++ b/static/api/cpp/4.0.x/_reader_configuration_8h_source.html
@@ -0,0 +1,242 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_READER_CONFIGURATION_H_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_READER_CONFIGURATION_H_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/ConsumerCryptoFailureAction.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/CryptoKeyReader.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;pulsar/Schema.h&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="keyword">class </span><a class="code hl_class" href="classpulsar_1_1_reader.html">Reader</a>;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> result)&gt; <a class="code hl_typedef" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> result, <a class="code hl_class" href="classpulsar_1_1_message_id.html">MessageId</a> messageId)&gt; GetLastMessageIdCallback;</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span></div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a9bddad6880419962bbc6af877209cd49">   42</a></span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_class" href="classpulsar_1_1_reader.html">Reader</a> reader, <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_message.html">Message</a>&amp; msg)&gt; <a class="code hl_typedef" href="namespacepulsar.html#a9bddad68804 [...]
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="keyword">struct </span>ReaderConfigurationImpl;</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span></div>
+<div class="foldopen" id="foldopen00049" data-start="{" data-end="};">
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html">   49</a></span><span class="keyword">class </span>PULSAR_PUBLIC ReaderConfiguration {</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>    ReaderConfiguration();</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>    ~ReaderConfiguration();</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>    ReaderConfiguration(<span class="keyword">const</span> ReaderConfiguration&amp;);</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span>    ReaderConfiguration&amp; operator=(<span class="keyword">const</span> ReaderConfiguration&amp;);</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span></div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#acbc3fa4579799b7857ca0daa938b0459">   64</a></span>    ReaderConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#acbc3fa4579799b7857ca0daa938b0459">setSchema</a>(<span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>&amp; schemaInfo);</div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span></div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a6cd2f670fd1a988fbe94eaa78daeb500">   69</a></span>    <span class="keyword">const</span> <a class="code hl_class" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>&amp; <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a6cd2f670fd1a988fbe94eaa78daeb500">getSchema</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span></div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#abade75269a49ba228530847e2013303d">   75</a></span>    ReaderConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#abade75269a49ba228530847e2013303d">setReaderListener</a>(<a class="code hl_typedef" href="namespacepulsar.html#a9bddad6880419962bbc6af877209cd49">ReaderListener</a> listener);</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span></div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#aac94153e08ec204f23de0700a5f5a26d">   80</a></span>    <a class="code hl_typedef" href="namespacepulsar.html#a9bddad6880419962bbc6af877209cd49">ReaderListener</a> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#aac94153e08ec204f23de0700a5f5a26d">getReaderListener</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span></div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a104b07bc32a421a8527e7d167ec2c611">   85</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a104b07bc32a421a8527e7d167ec2c611">hasReaderListener</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span></div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a0574cedc0bc7ccf457071df866830abe">  108</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a0574cedc0bc7ccf457071df866830abe">setReceiverQueueSize</a>(<span class="keywordtype">int</span> size);</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span></div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#acc4df17a3e440a6b6d0b5f887be396b9">  113</a></span>    <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#acc4df17a3e440a6b6d0b5f887be396b9">getReceiverQueueSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span></div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a8d42ba4bd17f9ac54a609d94f98780a2">  120</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a8d42ba4bd17f9ac54a609d94f98780a2">setReaderName</a>(<span class="keyword">const</span> std::string&amp; readerName);</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span></div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#ade2223dccff6f75d659fca0e1a65550c">  125</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#ade2223dccff6f75d659fca0e1a65550c">getReaderName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span></div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a281c0ae5579461f80677b43126329cd1">  134</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a281c0ae5579461f80677b43126329cd1">setSubscriptionRolePrefix</a>(<span class="keyword">const</span> std::string&amp; subscriptionRolePrefix);</div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span></div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#ae5107fa6216f477789c84338ab87675c">  139</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#ae5107fa6216f477789c84338ab87675c">getSubscriptionRolePrefix</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span></div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#aaf766afd6e75d0e1454d81d980f019b3">  154</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#aaf766afd6e75d0e1454d81d980f019b3">setReadCompacted</a>(<span class="keywordtype">bool</span> compacted);</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span></div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a93a555fd5dc20d394ea45e9155301ee4">  159</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a93a555fd5dc20d394ea45e9155301ee4">isReadCompacted</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span></div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#ae1848f9313953faf2ab00f198d412108">  167</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#ae1848f9313953faf2ab00f198d412108">setInternalSubscriptionName</a>(std::string internalSubscriptionName);</div>
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span></div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a9cbcd290feb9368452ae1536360819f6">  172</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a9cbcd290feb9368452ae1536360819f6">getInternalSubscriptionName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span></div>
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a11da218b52a8936415029509b9c707e9">  181</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a11da218b52a8936415029509b9c707e9">setUnAckedMessagesTimeoutMs</a>(<span class="keyword">const</span> uint64_t milliSeconds);</div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span></div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a35aadcf27818f2b46125004dcf160fe6">  186</a></span>    <span class="keywordtype">long</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a35aadcf27818f2b46125004dcf160fe6">getUnAckedMessagesTimeoutMs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span></div>
+<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a23df99b9e97709fcaa50e1766eb84e9b">  200</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a23df99b9e97709fcaa50e1766eb84e9b">setTickDurationInMs</a>(<span class="keyword">const</span> uint64_t milliSeconds);</div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span></div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a1618961cba0c4c980b01a6a42aac8036">  205</a></span>    <span class="keywordtype">long</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a1618961cba0c4c980b01a6a42aac8036">getTickDurationInMs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span></div>
+<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#ab909115a0d99bf1d13f00d098bd4af6f">  215</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#ab909115a0d99bf1d13f00d098bd4af6f">setAckGroupingTimeMs</a>(<span class="keywordtype">long</span> ackGroupingMillis);</div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span></div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#ad99affc2c9331c5a2116ce5a07147b3d">  222</a></span>    <span class="keywordtype">long</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#ad99affc2c9331c5a2116ce5a07147b3d">getAckGroupingTimeMs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span></div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#af3e84677688a37133d9b270f86aed8da">  230</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#af3e84677688a37133d9b270f86aed8da">setAckGroupingMaxSize</a>(<span class="keywordtype">long</span> maxGroupingSize);</div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span></div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#af6cfd1444b643e174269b42c961eaa3a">  237</a></span>    <span class="keywordtype">long</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#af6cfd1444b643e174269b42c961eaa3a">getAckGroupingMaxSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno">  238</span></div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#aa2cc4490830aeebee9c1a16589b8c429">  242</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#aa2cc4490830aeebee9c1a16589b8c429">isEncryptionEnabled</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno">  243</span></div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#ae14fe911357bd22d2e1eecb5184a95ef">  247</a></span>    <span class="keyword">const</span> CryptoKeyReaderPtr <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#ae14fe911357bd22d2e1eecb5184a95ef">getCryptoKeyReader</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00248" name="l00248"></a><span class="lineno">  248</span></div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a3ce07aacf5e43c5e3252d30e70556fc4">  254</a></span>    ReaderConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a3ce07aacf5e43c5e3252d30e70556fc4">setCryptoKeyReader</a>(CryptoKeyReaderPtr cryptoKeyReader);</div>
+<div class="line"><a id="l00255" name="l00255"></a><span class="lineno">  255</span></div>
+<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#aed1711ef9d9fed0a14f80451956cabe8">  259</a></span>    ConsumerCryptoFailureAction <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#aed1711ef9d9fed0a14f80451956cabe8">getCryptoFailureAction</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00260" name="l00260"></a><span class="lineno">  260</span></div>
+<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a717ee81f7651851635a569fe35d735ea">  264</a></span>    ReaderConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a717ee81f7651851635a569fe35d735ea">setCryptoFailureAction</a>(ConsumerCryptoFailureAction action);</div>
+<div class="line"><a id="l00265" name="l00265"></a><span class="lineno">  265</span></div>
+<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#ad34cc5c0bb490e5588653f7bbbf3cd2a">  274</a></span>    ReaderConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#ad34cc5c0bb490e5588653f7bbbf3cd2a">setStartMessageIdInclusive</a>(<span class="keywordtype">bool</span> startMessageIdInclusive);</div>
+<div class="line"><a id="l00275" name="l00275"></a><span class="lineno">  275</span></div>
+<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a2c9f4927d01acddc1106c9c1812acd47">  279</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a2c9f4927d01acddc1106c9c1812acd47">isStartMessageIdInclusive</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00280" name="l00280"></a><span class="lineno">  280</span></div>
+<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a0d53c4ac681120500c4d057a60f6f6a6">  288</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a0d53c4ac681120500c4d057a60f6f6a6">hasProperty</a>(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00289" name="l00289"></a><span class="lineno">  289</span></div>
+<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#ab006f647e263bd9be6f911a1b0299753">  296</a></span>    <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#ab006f647e263bd9be6f911a1b0299753">getProperty</a>(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00297" name="l00297"></a><span class="lineno">  297</span></div>
+<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a9e201286fcc453d43bd188fbe1c96490">  301</a></span>    std::map&lt;std::string, std::string&gt;&amp; <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a9e201286fcc453d43bd188fbe1c96490">getProperties</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00302" name="l00302"></a><span class="lineno">  302</span></div>
+<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a8fa193115478c84dfdef934fd50861fd">  308</a></span>    ReaderConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a8fa193115478c84dfdef934fd50861fd">setProperty</a>(<span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> std::string&amp; value);</div>
+<div class="line"><a id="l00309" name="l00309"></a><span class="lineno">  309</span></div>
+<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html#a12a43dd43372fb0b173002597bfdb2e3">  313</a></span>    ReaderConfiguration&amp; <a class="code hl_function" href="classpulsar_1_1_reader_configuration.html#a12a43dd43372fb0b173002597bfdb2e3">setProperties</a>(<span class="keyword">const</span> std::map&lt;std::string, std::string&gt;&amp; properties);</div>
+<div class="line"><a id="l00314" name="l00314"></a><span class="lineno">  314</span> </div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00316" name="l00316"></a><span class="lineno">  316</span>    std::shared_ptr&lt;ReaderConfigurationImpl&gt; impl_;</div>
+<div class="line"><a id="l00317" name="l00317"></a><span class="lineno">  317</span>};</div>
+</div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno">  318</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span><span class="preprocessor">#endif </span><span class="comment">/* PULSAR_READER_CONFIGURATION_H_ */</span><span class="preprocessor"></span></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:46</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="aclasspulsar_1_1_reader_configuration_html_a0574cedc0bc7ccf457071df866830abe"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a0574cedc0bc7ccf457071df866830abe">pulsar::ReaderConfiguration::setReceiverQueueSize</a></div><div class="ttdeci">void setReceiverQueueSize(int size)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a0d53c4ac681120500c4d057a60f6f6a6"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a0d53c4ac681120500c4d057a60f6f6a6">pulsar::ReaderConfiguration::hasProperty</a></div><div class="ttdeci">bool hasProperty(const std::string &amp;name) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a104b07bc32a421a8527e7d167ec2c611"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a104b07bc32a421a8527e7d167ec2c611">pulsar::ReaderConfiguration::hasReaderListener</a></div><div class="ttdeci">bool hasReaderListener() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a11da218b52a8936415029509b9c707e9"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a11da218b52a8936415029509b9c707e9">pulsar::ReaderConfiguration::setUnAckedMessagesTimeoutMs</a></div><div class="ttdeci">void setUnAckedMessagesTimeoutMs(const uint64_t milliSeconds)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a12a43dd43372fb0b173002597bfdb2e3"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a12a43dd43372fb0b173002597bfdb2e3">pulsar::ReaderConfiguration::setProperties</a></div><div class="ttdeci">ReaderConfiguration &amp; setProperties(const std::map&lt; std::string, std::string &gt; &amp;properties)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a1618961cba0c4c980b01a6a42aac8036"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a1618961cba0c4c980b01a6a42aac8036">pulsar::ReaderConfiguration::getTickDurationInMs</a></div><div class="ttdeci">long getTickDurationInMs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a23df99b9e97709fcaa50e1766eb84e9b"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a23df99b9e97709fcaa50e1766eb84e9b">pulsar::ReaderConfiguration::setTickDurationInMs</a></div><div class="ttdeci">void setTickDurationInMs(const uint64_t milliSeconds)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a281c0ae5579461f80677b43126329cd1"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a281c0ae5579461f80677b43126329cd1">pulsar::ReaderConfiguration::setSubscriptionRolePrefix</a></div><div class="ttdeci">void setSubscriptionRolePrefix(const std::string &amp;subscriptionRolePrefix)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a2c9f4927d01acddc1106c9c1812acd47"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a2c9f4927d01acddc1106c9c1812acd47">pulsar::ReaderConfiguration::isStartMessageIdInclusive</a></div><div class="ttdeci">bool isStartMessageIdInclusive() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a35aadcf27818f2b46125004dcf160fe6"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a35aadcf27818f2b46125004dcf160fe6">pulsar::ReaderConfiguration::getUnAckedMessagesTimeoutMs</a></div><div class="ttdeci">long getUnAckedMessagesTimeoutMs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a3ce07aacf5e43c5e3252d30e70556fc4"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a3ce07aacf5e43c5e3252d30e70556fc4">pulsar::ReaderConfiguration::setCryptoKeyReader</a></div><div class="ttdeci">ReaderConfiguration &amp; setCryptoKeyReader(CryptoKeyReaderPtr cryptoKeyReader)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a6cd2f670fd1a988fbe94eaa78daeb500"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a6cd2f670fd1a988fbe94eaa78daeb500">pulsar::ReaderConfiguration::getSchema</a></div><div class="ttdeci">const SchemaInfo &amp; getSchema() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a717ee81f7651851635a569fe35d735ea"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a717ee81f7651851635a569fe35d735ea">pulsar::ReaderConfiguration::setCryptoFailureAction</a></div><div class="ttdeci">ReaderConfiguration &amp; setCryptoFailureAction(ConsumerCryptoFailureAction action)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a8d42ba4bd17f9ac54a609d94f98780a2"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a8d42ba4bd17f9ac54a609d94f98780a2">pulsar::ReaderConfiguration::setReaderName</a></div><div class="ttdeci">void setReaderName(const std::string &amp;readerName)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a8fa193115478c84dfdef934fd50861fd"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a8fa193115478c84dfdef934fd50861fd">pulsar::ReaderConfiguration::setProperty</a></div><div class="ttdeci">ReaderConfiguration &amp; setProperty(const std::string &amp;name, const std::string &amp;value)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a93a555fd5dc20d394ea45e9155301ee4"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a93a555fd5dc20d394ea45e9155301ee4">pulsar::ReaderConfiguration::isReadCompacted</a></div><div class="ttdeci">bool isReadCompacted() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a9cbcd290feb9368452ae1536360819f6"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a9cbcd290feb9368452ae1536360819f6">pulsar::ReaderConfiguration::getInternalSubscriptionName</a></div><div class="ttdeci">const std::string &amp; getInternalSubscriptionName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_a9e201286fcc453d43bd188fbe1c96490"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#a9e201286fcc453d43bd188fbe1c96490">pulsar::ReaderConfiguration::getProperties</a></div><div class="ttdeci">std::map&lt; std::string, std::string &gt; &amp; getProperties() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_aa2cc4490830aeebee9c1a16589b8c429"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#aa2cc4490830aeebee9c1a16589b8c429">pulsar::ReaderConfiguration::isEncryptionEnabled</a></div><div class="ttdeci">bool isEncryptionEnabled() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_aac94153e08ec204f23de0700a5f5a26d"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#aac94153e08ec204f23de0700a5f5a26d">pulsar::ReaderConfiguration::getReaderListener</a></div><div class="ttdeci">ReaderListener getReaderListener() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_aaf766afd6e75d0e1454d81d980f019b3"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#aaf766afd6e75d0e1454d81d980f019b3">pulsar::ReaderConfiguration::setReadCompacted</a></div><div class="ttdeci">void setReadCompacted(bool compacted)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_ab006f647e263bd9be6f911a1b0299753"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#ab006f647e263bd9be6f911a1b0299753">pulsar::ReaderConfiguration::getProperty</a></div><div class="ttdeci">const std::string &amp; getProperty(const std::string &amp;name) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_ab909115a0d99bf1d13f00d098bd4af6f"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#ab909115a0d99bf1d13f00d098bd4af6f">pulsar::ReaderConfiguration::setAckGroupingTimeMs</a></div><div class="ttdeci">void setAckGroupingTimeMs(long ackGroupingMillis)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_abade75269a49ba228530847e2013303d"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#abade75269a49ba228530847e2013303d">pulsar::ReaderConfiguration::setReaderListener</a></div><div class="ttdeci">ReaderConfiguration &amp; setReaderListener(ReaderListener listener)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_acbc3fa4579799b7857ca0daa938b0459"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#acbc3fa4579799b7857ca0daa938b0459">pulsar::ReaderConfiguration::setSchema</a></div><div class="ttdeci">ReaderConfiguration &amp; setSchema(const SchemaInfo &amp;schemaInfo)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_acc4df17a3e440a6b6d0b5f887be396b9"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#acc4df17a3e440a6b6d0b5f887be396b9">pulsar::ReaderConfiguration::getReceiverQueueSize</a></div><div class="ttdeci">int getReceiverQueueSize() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_ad34cc5c0bb490e5588653f7bbbf3cd2a"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#ad34cc5c0bb490e5588653f7bbbf3cd2a">pulsar::ReaderConfiguration::setStartMessageIdInclusive</a></div><div class="ttdeci">ReaderConfiguration &amp; setStartMessageIdInclusive(bool startMessageIdInclusive)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_ad99affc2c9331c5a2116ce5a07147b3d"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#ad99affc2c9331c5a2116ce5a07147b3d">pulsar::ReaderConfiguration::getAckGroupingTimeMs</a></div><div class="ttdeci">long getAckGroupingTimeMs() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_ade2223dccff6f75d659fca0e1a65550c"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#ade2223dccff6f75d659fca0e1a65550c">pulsar::ReaderConfiguration::getReaderName</a></div><div class="ttdeci">const std::string &amp; getReaderName() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_ae14fe911357bd22d2e1eecb5184a95ef"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#ae14fe911357bd22d2e1eecb5184a95ef">pulsar::ReaderConfiguration::getCryptoKeyReader</a></div><div class="ttdeci">const CryptoKeyReaderPtr getCryptoKeyReader() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_ae1848f9313953faf2ab00f198d412108"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#ae1848f9313953faf2ab00f198d412108">pulsar::ReaderConfiguration::setInternalSubscriptionName</a></div><div class="ttdeci">void setInternalSubscriptionName(std::string internalSubscriptionName)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_ae5107fa6216f477789c84338ab87675c"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#ae5107fa6216f477789c84338ab87675c">pulsar::ReaderConfiguration::getSubscriptionRolePrefix</a></div><div class="ttdeci">const std::string &amp; getSubscriptionRolePrefix() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_aed1711ef9d9fed0a14f80451956cabe8"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#aed1711ef9d9fed0a14f80451956cabe8">pulsar::ReaderConfiguration::getCryptoFailureAction</a></div><div class="ttdeci">ConsumerCryptoFailureAction getCryptoFailureAction() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_af3e84677688a37133d9b270f86aed8da"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#af3e84677688a37133d9b270f86aed8da">pulsar::ReaderConfiguration::setAckGroupingMaxSize</a></div><div class="ttdeci">void setAckGroupingMaxSize(long maxGroupingSize)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html_af6cfd1444b643e174269b42c961eaa3a"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html#af6cfd1444b643e174269b42c961eaa3a">pulsar::ReaderConfiguration::getAckGroupingMaxSize</a></div><div class="ttdeci">long getAckGroupingMaxSize() const</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:147</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_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</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="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>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_regex_subscription_mode_8h_source.html b/static/api/cpp/4.0.x/_regex_subscription_mode_8h_source.html
new file mode 100644
index 00000000000..d39b7c5fd6d
--- /dev/null
+++ b/static/api/cpp/4.0.x/_regex_subscription_mode_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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_CPP_REGEX_SUB_MODE_H</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_CPP_REGEX_SUB_MODE_H</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="foldopen" id="foldopen00023" data-start="{" data-end="};">
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbd">   23</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbd">RegexSubscriptionMode</a></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>{</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda68931062ae96d4dcc4778eeac5fa3de4">   28</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda68931062ae96d4dcc4778eeac5fa3de4">PersistentOnly</a> = 0,</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda5af3d512f79ac90cacc326d86a230603">   33</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda5af3d512f79ac90cacc326d86a230603">NonPersistentOnly</a> = 1,</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbdaa30bab3d7d550e08f128647cbbd5b6ef">   38</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbdaa30bab3d7d550e08f128647cbbd5b6ef">AllTopics</a> = 2</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>};</div>
+</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>}</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="preprocessor">#endif  </span><span class="comment">// PULSAR_CPP_REGEX_SUB_MODE_H</span></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_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:24</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_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_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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_result_8h_source.html b/static/api/cpp/4.0.x/_result_8h_source.html
new file mode 100644
index 00000000000..c4059193a84
--- /dev/null
+++ b/static/api/cpp/4.0.x/_result_8h_source.html
@@ -0,0 +1,222 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef ERROR_HPP_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define ERROR_HPP_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;iosfwd&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span></div>
+<div class="foldopen" id="foldopen00032" data-start="{" data-end="};">
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">   32</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> : int8_t</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>{</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>    ResultRetryable = -1,  </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a0aac5dae08c453e94161e28d7cd5a92f">   35</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a0aac5dae08c453e94161e28d7cd5a92f">ResultOk</a> = 0,          </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a213e39d5c84b8794dd21ab4f60ff4b60">   37</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a213e39d5c84b8794dd21ab4f60ff4b60">ResultUnknownError</a>,  </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ad3d7545107897e19819066fe42e81a06">   39</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ad3d7545107897e19819066fe42e81a06">ResultInvalidConfiguration</a>,  </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079aeb1858ddf791b7288ab1cb066d70cfb4">   41</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079aeb1858ddf791b7288ab1cb066d70cfb4">ResultTimeout</a>,       </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a42ae88341f22c34ed9baac35804f1b01">   42</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a42ae88341f22c34ed9baac35804f1b01">ResultLookupError</a>,   </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ab26ee1bb88fafefa107071fa1fd775bc">   43</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ab26ee1bb88fafefa107071fa1fd775bc">ResultConnectError</a>,  </div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079aa084aea99a198f2d01c6c98eeb44ff9e">   44</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079aa084aea99a198f2d01c6c98eeb44ff9e">ResultReadError</a>,     </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a2b40eba56a27dc5615338a0d988e2024">   46</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a2b40eba56a27dc5615338a0d988e2024">ResultAuthenticationError</a>,             </div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a4db07aa497065f6cc0d8e314bf852057">   47</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a4db07aa497065f6cc0d8e314bf852057">ResultAuthorizationError</a>,              </div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a8014344f94ba9ad55337f01767e0e30c">   48</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a8014344f94ba9ad55337f01767e0e30c">ResultErrorGettingAuthenticationData</a>,  </div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a2188e16c2e397cee5f64aef6799c419c">   50</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a2188e16c2e397cee5f64aef6799c419c">ResultBrokerMetadataError</a>,     </div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a3ac5992ae486593f5aee1538970b51a6">   51</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a3ac5992ae486593f5aee1538970b51a6">ResultBrokerPersistenceError</a>,  </div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a60d3371f74155ecb5b11efbf217a2174">   52</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a60d3371f74155ecb5b11efbf217a2174">ResultChecksumError</a>,           </div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span> </div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a5cbe2e189b60f91ff0f2e82b973db31b">   54</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a5cbe2e189b60f91ff0f2e82b973db31b">ResultConsumerBusy</a>,   </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a00976fab0138d80c5fc621e3a44046b6">   55</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a00976fab0138d80c5fc621e3a44046b6">ResultNotConnected</a>,   </div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a6c11f7cd8f0bc274d12c5157157ad916">   56</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a6c11f7cd8f0bc274d12c5157157ad916">ResultAlreadyClosed</a>,  </div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a875234396481a34fb7f02d3ecd1936f0">   58</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a875234396481a34fb7f02d3ecd1936f0">ResultInvalidMessage</a>,  </div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span> </div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a48d27a5310cda91d13a23324a08533e9">   60</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a48d27a5310cda91d13a23324a08533e9">ResultConsumerNotInitialized</a>,         </div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a2b5f050c9b2aef10831927cece55b02a">   61</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a2b5f050c9b2aef10831927cece55b02a">ResultProducerNotInitialized</a>,         </div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ad0a7588cc2ac84de7fc17331ed59b544">   62</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ad0a7588cc2ac84de7fc17331ed59b544">ResultProducerBusy</a>,                   </div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a024fa5ba9fac2cb81fd4e8f6853a81a5">   63</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a024fa5ba9fac2cb81fd4e8f6853a81a5">ResultTooManyLookupRequestException</a>,  </div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span> </div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079afcb0b43f04e494ba3784f6c259b5137f">   65</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079afcb0b43f04e494ba3784f6c259b5137f">ResultInvalidTopicName</a>,  </div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a685954a2aedb14c0f3669d579bfd1193">   66</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a685954a2aedb14c0f3669d579bfd1193">ResultInvalidUrl</a>,  </div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079af8a459f352105f7e853e02ca2af193b0">   67</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079af8a459f352105f7e853e02ca2af193b0">ResultServiceUnitNotReady</a>,  </div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a60abb5ad06a78a3d6d40b2131534dfeb">   69</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a60abb5ad06a78a3d6d40b2131534dfeb">ResultOperationNotSupported</a>,</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>    ResultProducerBlockedQuotaExceededError,      </div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ab5cc52655496666d96f35edab07c9e7f">   71</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ab5cc52655496666d96f35edab07c9e7f">ResultProducerBlockedQuotaExceededException</a>,  </div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a1849c732b1ec8c7e1c0aa653de998d81">   72</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a1849c732b1ec8c7e1c0aa653de998d81">ResultProducerQueueIsFull</a>,                    </div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a43765d6a6cab85363b2cad047371294b">   73</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a43765d6a6cab85363b2cad047371294b">ResultMessageTooBig</a>,                          </div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ad1921e33dd6a45431a0209b70588cf48">   74</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ad1921e33dd6a45431a0209b70588cf48">ResultTopicNotFound</a>,                          </div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a061d6c40bdf75ca172ffdb862aad7c51">   75</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a061d6c40bdf75ca172ffdb862aad7c51">ResultSubscriptionNotFound</a>,                   </div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ac74e9fb1b2c25caf17ac3446303b7a71">   76</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ac74e9fb1b2c25caf17ac3446303b7a71">ResultConsumerNotFound</a>,                       </div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a888578f8569121606cfcfa6044c594c3">   77</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a888578f8569121606cfcfa6044c594c3">ResultUnsupportedVersionError</a>,  </div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a62df217dec3d3f75c7099d1464c92750">   78</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a62df217dec3d3f75c7099d1464c92750">ResultTopicTerminated</a>,          </div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ac131b27876dfd64d8e6b3355578a8f77">   79</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ac131b27876dfd64d8e6b3355578a8f77">ResultCryptoError</a>,              </div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079afe509853528453adc4ca304ea9b1d79e">   81</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079afe509853528453adc4ca304ea9b1d79e">ResultIncompatibleSchema</a>,   </div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ac0f35889e7dd6cb7f634baedb8481e9e">   82</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ac0f35889e7dd6cb7f634baedb8481e9e">ResultConsumerAssignError</a>,  </div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a2e01cfc218b721cbd2e2a06bf3cb78b0">   84</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a2e01cfc218b721cbd2e2a06bf3cb78b0">ResultCumulativeAcknowledgementNotAllowedError</a>,  </div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a653a82475a2715f839ba52329a9b6414">   86</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a653a82475a2715f839ba52329a9b6414">ResultTransactionCoordinatorNotFoundError</a>,       </div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a742ada2f12ae5b2ca11fa674889dc186">   87</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a742ada2f12ae5b2ca11fa674889dc186">ResultInvalidTxnStatusError</a>,                     </div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ad38a4ab387c0769f3c8c30fd2c7413a1">   88</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ad38a4ab387c0769f3c8c30fd2c7413a1">ResultNotAllowedError</a>,                           </div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a39c2049f4e7e428d2a4473b68223a53c">   89</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a39c2049f4e7e428d2a4473b68223a53c">ResultTransactionConflict</a>,                       </div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079af4bfae37b494ea0a2599cc4596bccdf0">   90</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079af4bfae37b494ea0a2599cc4596bccdf0">ResultTransactionNotFound</a>,                       </div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a6370706ff98bf4c513f11489679543cb">   91</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a6370706ff98bf4c513f11489679543cb">ResultProducerFenced</a>,                            </div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a7eaf7df2c4a2ac2f874e044db02c6733">   93</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a7eaf7df2c4a2ac2f874e044db02c6733">ResultMemoryBufferIsFull</a>,  </div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span> </div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a67722ba0750e461ae03912f5dc10d03a">   95</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a67722ba0750e461ae03912f5dc10d03a">ResultInterrupted</a>,  </div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span> </div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a287510a5c9a382f29f0cbdf3d32c0d59">   97</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a287510a5c9a382f29f0cbdf3d32c0d59">ResultDisconnected</a>,  </div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span>};</div>
+</div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span><span class="comment">// Return string representation of result code</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span>* strResult(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> result);</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span> </div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span>PULSAR_PUBLIC std::ostream&amp; operator&lt;&lt;(std::ostream&amp; s, <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a> result);</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span> </div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span><span class="preprocessor">#endif </span><span class="comment">/* ERROR_HPP_ */</span><span class="preprocessor"></span></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_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a00976fab0138d80c5fc621e3a44046b6"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a00976fab0138d80c5fc621e3a44046b6">pulsar::ResultNotConnected</a></div><div class="ttdeci">@ ResultNotConnected</div><div class="ttdoc">Exclusive consumer is already connected.</div><div class="ttdef"><b>Definition</b> Result.h:55</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a024fa5ba9fac2cb81fd4e8f6853a81a5"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a024fa5ba9fac2cb81fd4e8f6853a81a5">pulsar::ResultTooManyLookupRequestException</a></div><div class="ttdeci">@ ResultTooManyLookupRequestException</div><div class="ttdoc">Producer with same name is already connected.</div><div class="ttdef"><b>Definition</b> Result.h:63</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a061d6c40bdf75ca172ffdb862aad7c51"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a061d6c40bdf75ca172ffdb862aad7c51">pulsar::ResultSubscriptionNotFound</a></div><div class="ttdeci">@ ResultSubscriptionNotFound</div><div class="ttdoc">Topic not found.</div><div class="ttdef"><b>Definition</b> Result.h:75</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a0aac5dae08c453e94161e28d7cd5a92f"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a0aac5dae08c453e94161e28d7cd5a92f">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:35</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a1849c732b1ec8c7e1c0aa653de998d81"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a1849c732b1ec8c7e1c0aa653de998d81">pulsar::ResultProducerQueueIsFull</a></div><div class="ttdeci">@ ResultProducerQueueIsFull</div><div class="ttdoc">Producer is getting exception.</div><div class="ttdef"><b>Definition</b> Result.h:72</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a213e39d5c84b8794dd21ab4f60ff4b60"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a213e39d5c84b8794dd21ab4f60ff4b60">pulsar::ResultUnknownError</a></div><div class="ttdeci">@ ResultUnknownError</div><div class="ttdoc">Operation successful.</div><div class="ttdef"><b>Definition</b> Result.h:37</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a2188e16c2e397cee5f64aef6799c419c"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a2188e16c2e397cee5f64aef6799c419c">pulsar::ResultBrokerMetadataError</a></div><div class="ttdeci">@ ResultBrokerMetadataError</div><div class="ttdoc">Client cannot find authorization data.</div><div class="ttdef"><b>Definition</b> Result.h:50</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a287510a5c9a382f29f0cbdf3d32c0d59"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a287510a5c9a382f29f0cbdf3d32c0d59">pulsar::ResultDisconnected</a></div><div class="ttdeci">@ ResultDisconnected</div><div class="ttdoc">Interrupted while waiting to dequeue.</div><div class="ttdef"><b>Definition</b> Result.h:97</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a2b40eba56a27dc5615338a0d988e2024"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a2b40eba56a27dc5615338a0d988e2024">pulsar::ResultAuthenticationError</a></div><div class="ttdeci">@ ResultAuthenticationError</div><div class="ttdoc">Failed to read from socket.</div><div class="ttdef"><b>Definition</b> Result.h:46</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a2b5f050c9b2aef10831927cece55b02a"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a2b5f050c9b2aef10831927cece55b02a">pulsar::ResultProducerNotInitialized</a></div><div class="ttdeci">@ ResultProducerNotInitialized</div><div class="ttdoc">Consumer is not initialized.</div><div class="ttdef"><b>Definition</b> Result.h:61</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a2e01cfc218b721cbd2e2a06bf3cb78b0"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a2e01cfc218b721cbd2e2a06bf3cb78b0">pulsar::ResultCumulativeAcknowledgementNotAllowedError</a></div><div class="ttdeci">@ ResultCumulativeAcknowledgementNotAllowedError</div><div class="ttdef"><b>Definition</b> Result.h:84</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a39c2049f4e7e428d2a4473b68223a53c"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a39c2049f4e7e428d2a4473b68223a53c">pulsar::ResultTransactionConflict</a></div><div class="ttdeci">@ ResultTransactionConflict</div><div class="ttdoc">Not allowed.</div><div class="ttdef"><b>Definition</b> Result.h:89</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a3ac5992ae486593f5aee1538970b51a6"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a3ac5992ae486593f5aee1538970b51a6">pulsar::ResultBrokerPersistenceError</a></div><div class="ttdeci">@ ResultBrokerPersistenceError</div><div class="ttdoc">Broker failed in updating metadata.</div><div class="ttdef"><b>Definition</b> Result.h:51</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a42ae88341f22c34ed9baac35804f1b01"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a42ae88341f22c34ed9baac35804f1b01">pulsar::ResultLookupError</a></div><div class="ttdeci">@ ResultLookupError</div><div class="ttdoc">Operation timed out.</div><div class="ttdef"><b>Definition</b> Result.h:42</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a43765d6a6cab85363b2cad047371294b"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a43765d6a6cab85363b2cad047371294b">pulsar::ResultMessageTooBig</a></div><div class="ttdeci">@ ResultMessageTooBig</div><div class="ttdoc">Producer queue is full.</div><div class="ttdef"><b>Definition</b> Result.h:73</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a48d27a5310cda91d13a23324a08533e9"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a48d27a5310cda91d13a23324a08533e9">pulsar::ResultConsumerNotInitialized</a></div><div class="ttdeci">@ ResultConsumerNotInitialized</div><div class="ttdoc">Error in publishing an already used message.</div><div class="ttdef"><b>Definition</b> Result.h:60</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a4db07aa497065f6cc0d8e314bf852057"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a4db07aa497065f6cc0d8e314bf852057">pulsar::ResultAuthorizationError</a></div><div class="ttdeci">@ ResultAuthorizationError</div><div class="ttdoc">Authentication failed on broker.</div><div class="ttdef"><b>Definition</b> Result.h:47</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a5cbe2e189b60f91ff0f2e82b973db31b"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a5cbe2e189b60f91ff0f2e82b973db31b">pulsar::ResultConsumerBusy</a></div><div class="ttdeci">@ ResultConsumerBusy</div><div class="ttdoc">Corrupt message checksum failure.</div><div class="ttdef"><b>Definition</b> Result.h:54</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a60abb5ad06a78a3d6d40b2131534dfeb"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a60abb5ad06a78a3d6d40b2131534dfeb">pulsar::ResultOperationNotSupported</a></div><div class="ttdeci">@ ResultOperationNotSupported</div><div class="ttdef"><b>Definition</b> Result.h:69</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a60d3371f74155ecb5b11efbf217a2174"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a60d3371f74155ecb5b11efbf217a2174">pulsar::ResultChecksumError</a></div><div class="ttdeci">@ ResultChecksumError</div><div class="ttdoc">Broker failed to persist entry.</div><div class="ttdef"><b>Definition</b> Result.h:52</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a62df217dec3d3f75c7099d1464c92750"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a62df217dec3d3f75c7099d1464c92750">pulsar::ResultTopicTerminated</a></div><div class="ttdeci">@ ResultTopicTerminated</div><div class="ttdoc">Error when an older client/version doesn&#39;t support a required feature.</div><div class="ttdef"><b>Definition</b> Result.h:78</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a6370706ff98bf4c513f11489679543cb"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a6370706ff98bf4c513f11489679543cb">pulsar::ResultProducerFenced</a></div><div class="ttdeci">@ ResultProducerFenced</div><div class="ttdoc">Transaction not found.</div><div class="ttdef"><b>Definition</b> Result.h:91</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a653a82475a2715f839ba52329a9b6414"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a653a82475a2715f839ba52329a9b6414">pulsar::ResultTransactionCoordinatorNotFoundError</a></div><div class="ttdeci">@ ResultTransactionCoordinatorNotFoundError</div><div class="ttdef"><b>Definition</b> Result.h:86</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a67722ba0750e461ae03912f5dc10d03a"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a67722ba0750e461ae03912f5dc10d03a">pulsar::ResultInterrupted</a></div><div class="ttdeci">@ ResultInterrupted</div><div class="ttdoc">Client-wide memory limit has been reached.</div><div class="ttdef"><b>Definition</b> Result.h:95</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a685954a2aedb14c0f3669d579bfd1193"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a685954a2aedb14c0f3669d579bfd1193">pulsar::ResultInvalidUrl</a></div><div class="ttdeci">@ ResultInvalidUrl</div><div class="ttdoc">Invalid topic name.</div><div class="ttdef"><b>Definition</b> Result.h:66</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a6c11f7cd8f0bc274d12c5157157ad916"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a6c11f7cd8f0bc274d12c5157157ad916">pulsar::ResultAlreadyClosed</a></div><div class="ttdeci">@ ResultAlreadyClosed</div><div class="ttdoc">Producer/Consumer is not currently connected to broker.</div><div class="ttdef"><b>Definition</b> Result.h:56</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a742ada2f12ae5b2ca11fa674889dc186"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a742ada2f12ae5b2ca11fa674889dc186">pulsar::ResultInvalidTxnStatusError</a></div><div class="ttdeci">@ ResultInvalidTxnStatusError</div><div class="ttdoc">Transaction coordinator not found.</div><div class="ttdef"><b>Definition</b> Result.h:87</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a7eaf7df2c4a2ac2f874e044db02c6733"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a7eaf7df2c4a2ac2f874e044db02c6733">pulsar::ResultMemoryBufferIsFull</a></div><div class="ttdeci">@ ResultMemoryBufferIsFull</div><div class="ttdoc">Producer was fenced by broker.</div><div class="ttdef"><b>Definition</b> Result.h:93</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a8014344f94ba9ad55337f01767e0e30c"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a8014344f94ba9ad55337f01767e0e30c">pulsar::ResultErrorGettingAuthenticationData</a></div><div class="ttdeci">@ ResultErrorGettingAuthenticationData</div><div class="ttdoc">Client is not authorized to create producer/consumer.</div><div class="ttdef"><b>Definition</b> Result.h:48</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a875234396481a34fb7f02d3ecd1936f0"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a875234396481a34fb7f02d3ecd1936f0">pulsar::ResultInvalidMessage</a></div><div class="ttdeci">@ ResultInvalidMessage</div><div class="ttdoc">Producer/Consumer is already closed and not accepting any operation.</div><div class="ttdef"><b>Definition</b> Result.h:58</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079a888578f8569121606cfcfa6044c594c3"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079a888578f8569121606cfcfa6044c594c3">pulsar::ResultUnsupportedVersionError</a></div><div class="ttdeci">@ ResultUnsupportedVersionError</div><div class="ttdoc">Consumer not found.</div><div class="ttdef"><b>Definition</b> Result.h:77</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079aa084aea99a198f2d01c6c98eeb44ff9e"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079aa084aea99a198f2d01c6c98eeb44ff9e">pulsar::ResultReadError</a></div><div class="ttdeci">@ ResultReadError</div><div class="ttdoc">Failed to connect to broker.</div><div class="ttdef"><b>Definition</b> Result.h:44</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079ab26ee1bb88fafefa107071fa1fd775bc"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ab26ee1bb88fafefa107071fa1fd775bc">pulsar::ResultConnectError</a></div><div class="ttdeci">@ ResultConnectError</div><div class="ttdoc">Broker lookup failed.</div><div class="ttdef"><b>Definition</b> Result.h:43</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079ab5cc52655496666d96f35edab07c9e7f"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ab5cc52655496666d96f35edab07c9e7f">pulsar::ResultProducerBlockedQuotaExceededException</a></div><div class="ttdeci">@ ResultProducerBlockedQuotaExceededException</div><div class="ttdoc">Producer is blocked.</div><div class="ttdef"><b>Definition</b> Result.h:71</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079ac0f35889e7dd6cb7f634baedb8481e9e"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ac0f35889e7dd6cb7f634baedb8481e9e">pulsar::ResultConsumerAssignError</a></div><div class="ttdeci">@ ResultConsumerAssignError</div><div class="ttdoc">Specified schema is incompatible with the topic&#39;s schema.</div><div class="ttdef"><b>Definition</b> Result.h:82</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079ac131b27876dfd64d8e6b3355578a8f77"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ac131b27876dfd64d8e6b3355578a8f77">pulsar::ResultCryptoError</a></div><div class="ttdeci">@ ResultCryptoError</div><div class="ttdoc">Topic was already terminated.</div><div class="ttdef"><b>Definition</b> Result.h:79</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079ac74e9fb1b2c25caf17ac3446303b7a71"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ac74e9fb1b2c25caf17ac3446303b7a71">pulsar::ResultConsumerNotFound</a></div><div class="ttdeci">@ ResultConsumerNotFound</div><div class="ttdoc">Subscription not found.</div><div class="ttdef"><b>Definition</b> Result.h:76</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079ad0a7588cc2ac84de7fc17331ed59b544"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ad0a7588cc2ac84de7fc17331ed59b544">pulsar::ResultProducerBusy</a></div><div class="ttdeci">@ ResultProducerBusy</div><div class="ttdoc">Producer is not initialized.</div><div class="ttdef"><b>Definition</b> Result.h:62</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079ad1921e33dd6a45431a0209b70588cf48"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ad1921e33dd6a45431a0209b70588cf48">pulsar::ResultTopicNotFound</a></div><div class="ttdeci">@ ResultTopicNotFound</div><div class="ttdoc">Trying to send a messages exceeding the max size.</div><div class="ttdef"><b>Definition</b> Result.h:74</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079ad38a4ab387c0769f3c8c30fd2c7413a1"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ad38a4ab387c0769f3c8c30fd2c7413a1">pulsar::ResultNotAllowedError</a></div><div class="ttdeci">@ ResultNotAllowedError</div><div class="ttdoc">Invalid txn status error.</div><div class="ttdef"><b>Definition</b> Result.h:88</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079ad3d7545107897e19819066fe42e81a06"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079ad3d7545107897e19819066fe42e81a06">pulsar::ResultInvalidConfiguration</a></div><div class="ttdeci">@ ResultInvalidConfiguration</div><div class="ttdoc">Unknown error happened on broker.</div><div class="ttdef"><b>Definition</b> Result.h:39</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079aeb1858ddf791b7288ab1cb066d70cfb4"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079aeb1858ddf791b7288ab1cb066d70cfb4">pulsar::ResultTimeout</a></div><div class="ttdeci">@ ResultTimeout</div><div class="ttdoc">Invalid configuration.</div><div class="ttdef"><b>Definition</b> Result.h:41</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079af4bfae37b494ea0a2599cc4596bccdf0"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079af4bfae37b494ea0a2599cc4596bccdf0">pulsar::ResultTransactionNotFound</a></div><div class="ttdeci">@ ResultTransactionNotFound</div><div class="ttdoc">Transaction ack conflict.</div><div class="ttdef"><b>Definition</b> Result.h:90</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079af8a459f352105f7e853e02ca2af193b0"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079af8a459f352105f7e853e02ca2af193b0">pulsar::ResultServiceUnitNotReady</a></div><div class="ttdeci">@ ResultServiceUnitNotReady</div><div class="ttdoc">Client Initialized with Invalid Broker Url (VIP Url passed to Client Constructor).</div><div class="ttdef"><b>Definition</b> Result.h:67</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079afcb0b43f04e494ba3784f6c259b5137f"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079afcb0b43f04e494ba3784f6c259b5137f">pulsar::ResultInvalidTopicName</a></div><div class="ttdeci">@ ResultInvalidTopicName</div><div class="ttdoc">Too Many concurrent LookupRequest.</div><div class="ttdef"><b>Definition</b> Result.h:65</div></div>
+<div class="ttc" id="anamespacepulsar_html_a23832680be30b95d54755b56310e9079afe509853528453adc4ca304ea9b1d79e"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079afe509853528453adc4ca304ea9b1d79e">pulsar::ResultIncompatibleSchema</a></div><div class="ttdeci">@ ResultIncompatibleSchema</div><div class="ttdoc">Error when crypto operation fails.</div><div class="ttdef"><b>Definition</b> Result.h:81</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_schema_8h_source.html b/static/api/cpp/4.0.x/_schema_8h_source.html
new file mode 100644
index 00000000000..a2a78f0901f
--- /dev/null
+++ b/static/api/cpp/4.0.x/_schema_8h_source.html
@@ -0,0 +1,220 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;iosfwd&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;map&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span></div>
+<div class="foldopen" id="foldopen00034" data-start="{" data-end="};">
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6">   34</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6">KeyValueEncodingType</a> : uint8_t</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>{</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6a561af55a6a824ae74125a6cf4eade06a">   39</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6a561af55a6a824ae74125a6cf4eade06a">SEPARATED</a>,</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span></div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6acfbac07c6ae3e73f0e10ca60ad916bef">   44</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6acfbac07c6ae3e73f0e10ca60ad916bef">INLINE</a></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>};</div>
+</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span> </div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span><span class="comment">// Return string representation of result code</span></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *strEncodingType(<a class="code hl_enumeration" href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6">pulsar::KeyValueEncodingType</a> encodingType);</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>PULSAR_PUBLIC <a class="code hl_enumeration" href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6">KeyValueEncodingType</a> enumEncodingType(<span class="keyword">const</span> std::string &amp;encodingTypeStr);</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span> </div>
+<div class="foldopen" id="foldopen00052" data-start="{" data-end="};">
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8">   52</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8">SchemaType</a> : int8_t</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>{</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8af9377cb56d5b6973392d0fd2ca76009a">   57</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8af9377cb56d5b6973392d0fd2ca76009a">NONE</a> = 0,</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span></div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ab936a9dad2cbb5fca28fc477ff39fb70">   62</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ab936a9dad2cbb5fca28fc477ff39fb70">STRING</a> = 1,</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span></div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a15f7910601e8d522f151f3129c753283">   67</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a15f7910601e8d522f151f3129c753283">JSON</a> = 2,</div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span></div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a5054f171f6c60b73043727ddc60698a0">   72</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a5054f171f6c60b73043727ddc60698a0">PROTOBUF</a> = 3,</div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span></div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ac728ff4cb4de807c1b6fa8ca33f41d47">   77</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ac728ff4cb4de807c1b6fa8ca33f41d47">AVRO</a> = 4,</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span></div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a2c52dde965d6ba972179fa14116160e9">   82</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a2c52dde965d6ba972179fa14116160e9">INT8</a> = 6,</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span></div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a9e5ed020cb2ca197a0918946352cf96e">   87</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a9e5ed020cb2ca197a0918946352cf96e">INT16</a> = 7,</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span></div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ac048e1576ab161018f9e3c6eda6307d0">   92</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ac048e1576ab161018f9e3c6eda6307d0">INT32</a> = 8,</div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span></div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a11fafed4115309cf1f33eac044e704a2">   97</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a11fafed4115309cf1f33eac044e704a2">INT64</a> = 9,</div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span></div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a5102395892b9d15d0a0483a27ca64777">  102</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a5102395892b9d15d0a0483a27ca64777">FLOAT</a> = 10,</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span></div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a1b1684230ae9c15941cb3fe05bf972f0">  107</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a1b1684230ae9c15941cb3fe05bf972f0">DOUBLE</a> = 11,</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span></div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ab6fbe0f5b80de2aa67b68572e7a054d3">  112</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ab6fbe0f5b80de2aa67b68572e7a054d3">KEY_VALUE</a> = 15,</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span></div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a24048f6ae2e1048989e69644edcdc8f6">  117</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a24048f6ae2e1048989e69644edcdc8f6">PROTOBUF_NATIVE</a> = 20,</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span></div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a4dcbdcae67c5f78b7c4fff2c2135cba2">  122</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a4dcbdcae67c5f78b7c4fff2c2135cba2">BYTES</a> = -1,</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span></div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a6a9078e01119bddf19aa24dc05390f99">  127</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a6a9078e01119bddf19aa24dc05390f99">AUTO_CONSUME</a> = -3,</div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span></div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ad1af93d272614c940d322497eb8e31f0">  132</a></span>    <a class="code hl_enumvalue" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ad1af93d272614c940d322497eb8e31f0">AUTO_PUBLISH</a> = -4,</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span>};</div>
+</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span> </div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span><span class="comment">// Return string representation of result code</span></div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *strSchemaType(<a class="code hl_enumeration" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8">SchemaType</a> schemaType);</div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno">  137</span> </div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno">  138</span>PULSAR_PUBLIC <a class="code hl_enumeration" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8">SchemaType</a> enumSchemaType(<span class="keyword">const</span> std::string &amp;schemaTypeStr);</div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span> </div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span><span class="keyword">class </span>SchemaInfoImpl;</div>
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno">  141</span> </div>
+<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span><span class="keyword">typedef</span> std::map&lt;std::string, std::string&gt; StringMap;</div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno">  143</span></div>
+<div class="foldopen" id="foldopen00147" data-start="{" data-end="};">
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="classpulsar_1_1_schema_info.html">  147</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_function" href="classpulsar_1_1_schema_info.html#a92a6aa4d6f21ce8511e680b86ed0de93">SchemaInfo</a> {</div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="classpulsar_1_1_schema_info.html#a92a6aa4d6f21ce8511e680b86ed0de93">  159</a></span>    <a class="code hl_function" href="classpulsar_1_1_schema_info.html#a92a6aa4d6f21ce8511e680b86ed0de93">SchemaInfo</a>();</div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span></div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="classpulsar_1_1_schema_info.html#ab0e388e0cc81a21da3917156053e16d2">  167</a></span>    <a class="code hl_function" href="classpulsar_1_1_schema_info.html#ab0e388e0cc81a21da3917156053e16d2">SchemaInfo</a>(<a class="code hl_enumeration" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8">SchemaType</a> schemaType, <span class="keyword">const</span> std::string &amp;name, <span class="ke [...]
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span>               <span class="keyword">const</span> StringMap &amp;properties = StringMap());</div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno">  169</span></div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="classpulsar_1_1_schema_info.html#abb5fa2e2c1dfe4bdd002a90359bab732">  175</a></span>    <a class="code hl_function" href="classpulsar_1_1_schema_info.html#abb5fa2e2c1dfe4bdd002a90359bab732">SchemaInfo</a>(<span class="keyword">const</span> <a class="code hl_function" href="classpulsar_1_1_schema_info.html#a92a6aa4d6f21ce8511e680b86ed0de93">SchemaInfo</a> &amp;keySchema, <span class="keyword">con [...]
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span>               <span class="keyword">const</span> <a class="code hl_enumeration" href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6">KeyValueEncodingType</a> &amp;keyValueEncodingType = <a class="code hl_enumvalue" href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6acfbac07c6ae3e73f0e10ca60ad916bef">KeyValueEncodingType::INLINE</a>);</div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span></div>
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"><a class="line" href="classpulsar_1_1_schema_info.html#a6ff46ec7c53346fb9249edd1e34d6e62">  181</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8">SchemaType</a> <a class="code hl_function" href="classpulsar_1_1_schema_info.html#a6ff46ec7c53346fb9249edd1e34d6e62">getSchemaType</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span></div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="classpulsar_1_1_schema_info.html#ae253cd885dfbc4a9e70d1374ded43c38">  186</a></span>    <span class="keyword">const</span> std::string &amp;<a class="code hl_function" href="classpulsar_1_1_schema_info.html#ae253cd885dfbc4a9e70d1374ded43c38">getName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span></div>
+<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="classpulsar_1_1_schema_info.html#ad75d2496d13da8dc13f738606f7c72ec">  191</a></span>    <span class="keyword">const</span> std::string &amp;<a class="code hl_function" href="classpulsar_1_1_schema_info.html#ad75d2496d13da8dc13f738606f7c72ec">getSchema</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00192" name="l00192"></a><span class="lineno">  192</span></div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"><a class="line" href="classpulsar_1_1_schema_info.html#a5365dc263da01261bb92c95e27ffa0d6">  196</a></span>    <span class="keyword">const</span> StringMap &amp;<a class="code hl_function" href="classpulsar_1_1_schema_info.html#a5365dc263da01261bb92c95e27ffa0d6">getProperties</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00197" name="l00197"></a><span class="lineno">  197</span> </div>
+<div class="line"><a id="l00198" name="l00198"></a><span class="lineno">  198</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00199" name="l00199"></a><span class="lineno">  199</span>    <span class="keyword">typedef</span> std::shared_ptr&lt;SchemaInfoImpl&gt; SchemaInfoImplPtr;</div>
+<div class="line"><a id="l00200" name="l00200"></a><span class="lineno">  200</span>    SchemaInfoImplPtr impl_;</div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span>};</div>
+</div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a id="l00203" name="l00203"></a><span class="lineno">  203</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00204" name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span>PULSAR_PUBLIC std::ostream &amp;operator&lt;&lt;(std::ostream &amp;s, <a class="code hl_enumeration" href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8">pulsar::SchemaType</a> schemaType);</div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span>PULSAR_PUBLIC std::ostream &amp;operator&lt;&lt;(std::ostream &amp;s, <a class="code hl_enumeration" href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6">pulsar::KeyValueEncodingType</a> encodingType);</div>
+<div class="ttc" id="aclasspulsar_1_1_schema_info_html_a5365dc263da01261bb92c95e27ffa0d6"><div class="ttname"><a href="classpulsar_1_1_schema_info.html#a5365dc263da01261bb92c95e27ffa0d6">pulsar::SchemaInfo::getProperties</a></div><div class="ttdeci">const StringMap &amp; getProperties() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_schema_info_html_a6ff46ec7c53346fb9249edd1e34d6e62"><div class="ttname"><a href="classpulsar_1_1_schema_info.html#a6ff46ec7c53346fb9249edd1e34d6e62">pulsar::SchemaInfo::getSchemaType</a></div><div class="ttdeci">SchemaType getSchemaType() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_schema_info_html_a92a6aa4d6f21ce8511e680b86ed0de93"><div class="ttname"><a href="classpulsar_1_1_schema_info.html#a92a6aa4d6f21ce8511e680b86ed0de93">pulsar::SchemaInfo::SchemaInfo</a></div><div class="ttdeci">SchemaInfo()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_schema_info_html_ab0e388e0cc81a21da3917156053e16d2"><div class="ttname"><a href="classpulsar_1_1_schema_info.html#ab0e388e0cc81a21da3917156053e16d2">pulsar::SchemaInfo::SchemaInfo</a></div><div class="ttdeci">SchemaInfo(SchemaType schemaType, const std::string &amp;name, const std::string &amp;schema, const StringMap &amp;properties=StringMap())</div></div>
+<div class="ttc" id="aclasspulsar_1_1_schema_info_html_abb5fa2e2c1dfe4bdd002a90359bab732"><div class="ttname"><a href="classpulsar_1_1_schema_info.html#abb5fa2e2c1dfe4bdd002a90359bab732">pulsar::SchemaInfo::SchemaInfo</a></div><div class="ttdeci">SchemaInfo(const SchemaInfo &amp;keySchema, const SchemaInfo &amp;valueSchema, const KeyValueEncodingType &amp;keyValueEncodingType=KeyValueEncodingType::INLINE)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_schema_info_html_ad75d2496d13da8dc13f738606f7c72ec"><div class="ttname"><a href="classpulsar_1_1_schema_info.html#ad75d2496d13da8dc13f738606f7c72ec">pulsar::SchemaInfo::getSchema</a></div><div class="ttdeci">const std::string &amp; getSchema() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_schema_info_html_ae253cd885dfbc4a9e70d1374ded43c38"><div class="ttname"><a href="classpulsar_1_1_schema_info.html#ae253cd885dfbc4a9e70d1374ded43c38">pulsar::SchemaInfo::getName</a></div><div class="ttdeci">const std::string &amp; getName() const</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_a110c1992e36a25acc192ea4f399bc4f8"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8">pulsar::SchemaType</a></div><div class="ttdeci">SchemaType</div><div class="ttdef"><b>Definition</b> Schema.h:53</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8a11fafed4115309cf1f33eac044e704a2"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a11fafed4115309cf1f33eac044e704a2">pulsar::INT64</a></div><div class="ttdeci">@ INT64</div><div class="ttdef"><b>Definition</b> Schema.h:97</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8a15f7910601e8d522f151f3129c753283"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a15f7910601e8d522f151f3129c753283">pulsar::JSON</a></div><div class="ttdeci">@ JSON</div><div class="ttdef"><b>Definition</b> Schema.h:67</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8a1b1684230ae9c15941cb3fe05bf972f0"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a1b1684230ae9c15941cb3fe05bf972f0">pulsar::DOUBLE</a></div><div class="ttdeci">@ DOUBLE</div><div class="ttdef"><b>Definition</b> Schema.h:107</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8a24048f6ae2e1048989e69644edcdc8f6"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a24048f6ae2e1048989e69644edcdc8f6">pulsar::PROTOBUF_NATIVE</a></div><div class="ttdeci">@ PROTOBUF_NATIVE</div><div class="ttdef"><b>Definition</b> Schema.h:117</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8a2c52dde965d6ba972179fa14116160e9"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a2c52dde965d6ba972179fa14116160e9">pulsar::INT8</a></div><div class="ttdeci">@ INT8</div><div class="ttdef"><b>Definition</b> Schema.h:82</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8a4dcbdcae67c5f78b7c4fff2c2135cba2"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a4dcbdcae67c5f78b7c4fff2c2135cba2">pulsar::BYTES</a></div><div class="ttdeci">@ BYTES</div><div class="ttdef"><b>Definition</b> Schema.h:122</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8a5054f171f6c60b73043727ddc60698a0"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a5054f171f6c60b73043727ddc60698a0">pulsar::PROTOBUF</a></div><div class="ttdeci">@ PROTOBUF</div><div class="ttdef"><b>Definition</b> Schema.h:72</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8a5102395892b9d15d0a0483a27ca64777"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a5102395892b9d15d0a0483a27ca64777">pulsar::FLOAT</a></div><div class="ttdeci">@ FLOAT</div><div class="ttdef"><b>Definition</b> Schema.h:102</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8a6a9078e01119bddf19aa24dc05390f99"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a6a9078e01119bddf19aa24dc05390f99">pulsar::AUTO_CONSUME</a></div><div class="ttdeci">@ AUTO_CONSUME</div><div class="ttdef"><b>Definition</b> Schema.h:127</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8a9e5ed020cb2ca197a0918946352cf96e"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8a9e5ed020cb2ca197a0918946352cf96e">pulsar::INT16</a></div><div class="ttdeci">@ INT16</div><div class="ttdef"><b>Definition</b> Schema.h:87</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8ab6fbe0f5b80de2aa67b68572e7a054d3"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ab6fbe0f5b80de2aa67b68572e7a054d3">pulsar::KEY_VALUE</a></div><div class="ttdeci">@ KEY_VALUE</div><div class="ttdef"><b>Definition</b> Schema.h:112</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8ab936a9dad2cbb5fca28fc477ff39fb70"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ab936a9dad2cbb5fca28fc477ff39fb70">pulsar::STRING</a></div><div class="ttdeci">@ STRING</div><div class="ttdef"><b>Definition</b> Schema.h:62</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8ac048e1576ab161018f9e3c6eda6307d0"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ac048e1576ab161018f9e3c6eda6307d0">pulsar::INT32</a></div><div class="ttdeci">@ INT32</div><div class="ttdef"><b>Definition</b> Schema.h:92</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8ac728ff4cb4de807c1b6fa8ca33f41d47"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ac728ff4cb4de807c1b6fa8ca33f41d47">pulsar::AVRO</a></div><div class="ttdeci">@ AVRO</div><div class="ttdef"><b>Definition</b> Schema.h:77</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8ad1af93d272614c940d322497eb8e31f0"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8ad1af93d272614c940d322497eb8e31f0">pulsar::AUTO_PUBLISH</a></div><div class="ttdeci">@ AUTO_PUBLISH</div><div class="ttdef"><b>Definition</b> Schema.h:132</div></div>
+<div class="ttc" id="anamespacepulsar_html_a110c1992e36a25acc192ea4f399bc4f8af9377cb56d5b6973392d0fd2ca76009a"><div class="ttname"><a href="namespacepulsar.html#a110c1992e36a25acc192ea4f399bc4f8af9377cb56d5b6973392d0fd2ca76009a">pulsar::NONE</a></div><div class="ttdeci">@ NONE</div><div class="ttdef"><b>Definition</b> Schema.h:57</div></div>
+<div class="ttc" id="anamespacepulsar_html_a37a42c28f591ba599466990fb42e04a6"><div class="ttname"><a href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6">pulsar::KeyValueEncodingType</a></div><div class="ttdeci">KeyValueEncodingType</div><div class="ttdef"><b>Definition</b> Schema.h:35</div></div>
+<div class="ttc" id="anamespacepulsar_html_a37a42c28f591ba599466990fb42e04a6a561af55a6a824ae74125a6cf4eade06a"><div class="ttname"><a href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6a561af55a6a824ae74125a6cf4eade06a">pulsar::KeyValueEncodingType::SEPARATED</a></div><div class="ttdeci">@ SEPARATED</div><div class="ttdef"><b>Definition</b> Schema.h:39</div></div>
+<div class="ttc" id="anamespacepulsar_html_a37a42c28f591ba599466990fb42e04a6acfbac07c6ae3e73f0e10ca60ad916bef"><div class="ttname"><a href="namespacepulsar.html#a37a42c28f591ba599466990fb42e04a6acfbac07c6ae3e73f0e10ca60ad916bef">pulsar::KeyValueEncodingType::INLINE</a></div><div class="ttdeci">@ INLINE</div><div class="ttdef"><b>Definition</b> Schema.h:44</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_table_view_8h_source.html b/static/api/cpp/4.0.x/_table_view_8h_source.html
new file mode 100644
index 00000000000..c8398990fa0
--- /dev/null
+++ b/static/api/cpp/4.0.x/_table_view_8h_source.html
@@ -0,0 +1,154 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef TABEL_VIEW_HPP_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define TABEL_VIEW_HPP_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/TableViewConfiguration.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;unordered_map&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="keyword">class </span>TableViewImpl;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keyword">typedef</span> std::function&lt;void(<a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> result)&gt; <a class="code hl_typedef" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><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="foldopen" id="foldopen00038" data-start="{" data-end="};">
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="classpulsar_1_1_table_view.html">   38</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_function" href="classpulsar_1_1_table_view.html#ae43275f26ff0ec494a75c11210ec6139">TableView</a> {</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="classpulsar_1_1_table_view.html#ae43275f26ff0ec494a75c11210ec6139">   43</a></span>    <a class="code hl_function" href="classpulsar_1_1_table_view.html#ae43275f26ff0ec494a75c11210ec6139">TableView</a>();</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span></div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="classpulsar_1_1_table_view.html#a7184812e0d4bf374a23ba7c99d53f18e">   69</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_table_view.html#a7184812e0d4bf374a23ba7c99d53f18e">retrieveValue</a>(<span class="keyword">const</span> std::string&amp; key, std::string&amp; value);</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span></div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="classpulsar_1_1_table_view.html#a8bc874dc48a7381726e48145a8037879">   78</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_table_view.html#a8bc874dc48a7381726e48145a8037879">getValue</a>(<span class="keyword">const</span> std::string&amp; key, std::string&amp; value) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span></div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="classpulsar_1_1_table_view.html#a212c8a8897249b47c1cd6f44e04d452b">   85</a></span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="classpulsar_1_1_table_view.html#a212c8a8897249b47c1cd6f44e04d452b">containsKey</a>(<span class="keyword">const</span> std::string&amp; key) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span></div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="classpulsar_1_1_table_view.html#a5169558ea5a27b29dd5bcf040fa97543">   90</a></span>    std::unordered_map&lt;std::string, std::string&gt; <a class="code hl_function" href="classpulsar_1_1_table_view.html#a5169558ea5a27b29dd5bcf040fa97543">snapshot</a>();</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span></div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="classpulsar_1_1_table_view.html#afdb10373c073e4b0722606a0f9b4174e">   95</a></span>    std::size_t <a class="code hl_function" href="classpulsar_1_1_table_view.html#afdb10373c073e4b0722606a0f9b4174e">size</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="classpulsar_1_1_table_view.html#a98b532f6704e54f6cb9f40dc9a9ea7d3">  101</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_table_view.html#a98b532f6704e54f6cb9f40dc9a9ea7d3">forEach</a>(<span class="keyword">const</span> TableViewAction&amp; action);</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span></div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="classpulsar_1_1_table_view.html#a1e2179e83cbd5257e424b0808d75da3f">  107</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_table_view.html#a1e2179e83cbd5257e424b0808d75da3f">forEachAndListen</a>(<span class="keyword">const</span> TableViewAction&amp; action);</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span></div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="classpulsar_1_1_table_view.html#aaeae7c5dc9e8e9e19b93a58597992b7f">  112</a></span>    <span class="keywordtype">void</span> <a class="code hl_function" href="classpulsar_1_1_table_view.html#aaeae7c5dc9e8e9e19b93a58597992b7f">closeAsync</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>&amp; callback);</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span></div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="classpulsar_1_1_table_view.html#a5f913f66c65c819a0b151daf08d43440">  117</a></span>    <a class="code hl_enumeration" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a> <a class="code hl_function" href="classpulsar_1_1_table_view.html#a5f913f66c65c819a0b151daf08d43440">close</a>();</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span> </div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span>    <span class="keyword">typedef</span> std::shared_ptr&lt;TableViewImpl&gt; TableViewImplPtr;</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>    TableViewImplPtr impl_;</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span>    <span class="keyword">explicit</span> <a class="code hl_function" href="classpulsar_1_1_table_view.html#ae43275f26ff0ec494a75c11210ec6139">TableView</a>(TableViewImplPtr);</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span> </div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span>    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span>    <span class="keyword">friend</span> <span class="keyword">class </span>ClientImpl;</div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span>};</div>
+</div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span><span class="preprocessor">#endif </span><span class="comment">/* TABEL_VIEW_HPP_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="aclasspulsar_1_1_table_view_html_a1e2179e83cbd5257e424b0808d75da3f"><div class="ttname"><a href="classpulsar_1_1_table_view.html#a1e2179e83cbd5257e424b0808d75da3f">pulsar::TableView::forEachAndListen</a></div><div class="ttdeci">void forEachAndListen(const TableViewAction &amp;action)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_table_view_html_a212c8a8897249b47c1cd6f44e04d452b"><div class="ttname"><a href="classpulsar_1_1_table_view.html#a212c8a8897249b47c1cd6f44e04d452b">pulsar::TableView::containsKey</a></div><div class="ttdeci">bool containsKey(const std::string &amp;key) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_table_view_html_a5169558ea5a27b29dd5bcf040fa97543"><div class="ttname"><a href="classpulsar_1_1_table_view.html#a5169558ea5a27b29dd5bcf040fa97543">pulsar::TableView::snapshot</a></div><div class="ttdeci">std::unordered_map&lt; std::string, std::string &gt; snapshot()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_table_view_html_a5f913f66c65c819a0b151daf08d43440"><div class="ttname"><a href="classpulsar_1_1_table_view.html#a5f913f66c65c819a0b151daf08d43440">pulsar::TableView::close</a></div><div class="ttdeci">Result close()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_table_view_html_a7184812e0d4bf374a23ba7c99d53f18e"><div class="ttname"><a href="classpulsar_1_1_table_view.html#a7184812e0d4bf374a23ba7c99d53f18e">pulsar::TableView::retrieveValue</a></div><div class="ttdeci">bool retrieveValue(const std::string &amp;key, std::string &amp;value)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_table_view_html_a8bc874dc48a7381726e48145a8037879"><div class="ttname"><a href="classpulsar_1_1_table_view.html#a8bc874dc48a7381726e48145a8037879">pulsar::TableView::getValue</a></div><div class="ttdeci">bool getValue(const std::string &amp;key, std::string &amp;value) const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_table_view_html_a98b532f6704e54f6cb9f40dc9a9ea7d3"><div class="ttname"><a href="classpulsar_1_1_table_view.html#a98b532f6704e54f6cb9f40dc9a9ea7d3">pulsar::TableView::forEach</a></div><div class="ttdeci">void forEach(const TableViewAction &amp;action)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_table_view_html_aaeae7c5dc9e8e9e19b93a58597992b7f"><div class="ttname"><a href="classpulsar_1_1_table_view.html#aaeae7c5dc9e8e9e19b93a58597992b7f">pulsar::TableView::closeAsync</a></div><div class="ttdeci">void closeAsync(const ResultCallback &amp;callback)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_table_view_html_ae43275f26ff0ec494a75c11210ec6139"><div class="ttname"><a href="classpulsar_1_1_table_view.html#ae43275f26ff0ec494a75c11210ec6139">pulsar::TableView::TableView</a></div><div class="ttdeci">TableView()</div></div>
+<div class="ttc" id="aclasspulsar_1_1_table_view_html_afdb10373c073e4b0722606a0f9b4174e"><div class="ttname"><a href="classpulsar_1_1_table_view.html#afdb10373c073e4b0722606a0f9b4174e">pulsar::TableView::size</a></div><div class="ttdeci">std::size_t size() const</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_a23832680be30b95d54755b56310e9079"><div class="ttname"><a href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition</b> Result.h:33</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>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_table_view_configuration_8h_source.html b/static/api/cpp/4.0.x/_table_view_configuration_8h_source.html
new file mode 100644
index 00000000000..eb35b62de2f
--- /dev/null
+++ b/static/api/cpp/4.0.x/_table_view_configuration_8h_source.html
@@ -0,0 +1,113 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef PULSAR_TABLEVIEW_CONFIGURATION_H_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define PULSAR_TABLEVIEW_CONFIGURATION_H_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/Schema.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="foldopen" id="foldopen00027" data-start="{" data-end="};">
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="structpulsar_1_1_table_view_configuration.html">   27</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structpulsar_1_1_table_view_configuration.html">TableViewConfiguration</a> {</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>    <span class="comment">// Declare the schema of the data that this table view will be accepting.</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>    <span class="comment">// The schema will be checked against the schema of the topic, and the</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    <span class="comment">// table view creation will fail if it&#39;s not compatible.</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    <a class="code hl_class" href="classpulsar_1_1_schema_info.html">SchemaInfo</a> schemaInfo;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>    <span class="comment">// The name of the subscription to the topic. Default value is reader-{random string}.</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>    std::string subscriptionName;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>};</div>
+</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="preprocessor">#endif </span><span class="comment">/* PULSAR_TABLEVIEW_CONFIGURATION_H_ */</span><span class="preprocessor"></span></div>
+<div 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:147</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>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_topic_metadata_8h_source.html b/static/api/cpp/4.0.x/_topic_metadata_8h_source.html
new file mode 100644
index 00000000000..91ce404e752
--- /dev/null
+++ b/static/api/cpp/4.0.x/_topic_metadata_8h_source.html
@@ -0,0 +1,110 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#ifndef TOPIC_METADATA_HPP_</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define TOPIC_METADATA_HPP_</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="foldopen" id="foldopen00028" data-start="{" data-end="};">
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_topic_metadata.html">   28</a></span><span class="keyword">class </span>PULSAR_PUBLIC <a class="code hl_class" href="classpulsar_1_1_topic_metadata.html">TopicMetadata</a> {</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    <span class="keyword">virtual</span> <a class="code hl_class" href="classpulsar_1_1_topic_metadata.html">~TopicMetadata</a>() {}</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span></div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="classpulsar_1_1_topic_metadata.html#a427a1228dd01108f5748ce92516bf5b1">   35</a></span>    <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classpulsar_1_1_topic_metadata.html#a427a1228dd01108f5748ce92516bf5b1">getNumPartitions</a>() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>};</div>
+</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="preprocessor">#endif </span><span class="comment">/* TOPIC_METADATA_HPP_ */</span><span class="preprocessor"></span></div>
+<div 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_topic_metadata_html_a427a1228dd01108f5748ce92516bf5b1"><div class="ttname"><a href="classpulsar_1_1_topic_metadata.html#a427a1228dd01108f5748ce92516bf5b1">pulsar::TopicMetadata::getNumPartitions</a></div><div class="ttdeci">virtual int getNumPartitions() const =0</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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_typed_message_8h_source.html b/static/api/cpp/4.0.x/_typed_message_8h_source.html
new file mode 100644
index 00000000000..1ba4036c44c
--- /dev/null
+++ b/static/api/cpp/4.0.x/_typed_message_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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="foldopen" id="foldopen00028" data-start="{" data-end="};">
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_typed_message.html">   28</a></span><span class="keyword">class </span>TypedMessage : <span class="keyword">public</span> Message {</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    <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 id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>    TypedMessage() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>    TypedMessage(</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>        <span class="keyword">const</span> Message&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 id="l00036" name="l00036"></a><span class="lineno">   36</span>        : Message(message), decoder_(decoder) {}</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>    T getValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> decoder_(<span class="keyword">static_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(<a class="code hl_function" href="classpulsar_1_1_message.html#ab485e3ff7dbefa8c0523ebaabef55d5d">getData</a>()), <a class="code hl_function" href="classp [...]
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>    TypedMessage&amp; setDecoder(Decoder decoder) {</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>        decoder_ = decoder;</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>    }</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>    Decoder decoder_;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>};</div>
+</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span> </div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>}  <span class="comment">// namespace pulsar</span></div>
+<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_ab485e3ff7dbefa8c0523ebaabef55d5d"><div class="ttname"><a href="classpulsar_1_1_message.html#ab485e3ff7dbefa8c0523ebaabef55d5d">pulsar::Message::getData</a></div><div class="ttdeci">const void * getData() const</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><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/_typed_message_builder_8h_source.html b/static/api/cpp/4.0.x/_typed_message_builder_8h_source.html
new file mode 100644
index 00000000000..05a99379411
--- /dev/null
+++ b/static/api/cpp/4.0.x/_typed_message_builder_8h_source.html
@@ -0,0 +1,158 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#include &lt;pulsar/MessageBuilder.h&gt;</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="foldopen" id="foldopen00028" data-start="{" data-end="};">
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_typed_message_builder.html">   28</a></span><span class="keyword">class </span>TypedMessageBuilder : <span class="keyword">public</span> MessageBuilder {</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    <span class="keyword">using </span>Encoder = std::function&lt;std::string(<span class="keyword">const</span> T&amp;)&gt;;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    <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 id="l00032" name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>    TypedMessageBuilder(</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>        Encoder encoder, Validator validator = [](<span class="keyword">const</span> <span class="keywordtype">char</span>*, std::size_t) {})</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>        : encoder_(encoder), validator_(validator) {}</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    TypedMessageBuilder&amp; setValue(<span class="keyword">const</span> T&amp; value) {</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>        <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a2cc0fde4d3dcc2aae68e6e1588c8d364">setContent</a>(encoder_(value));</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>        <span class="keywordflow">if</span> (validator_) {</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>            validator_(data(), size());</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>        }</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>    }</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>    <span class="keyword">const</span> Encoder encoder_;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>    <span class="keyword">const</span> Validator validator_;</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>};</div>
+</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span><span class="keyword">template</span> &lt;&gt;</div>
+<div class="foldopen" id="foldopen00051" data-start="{" data-end="};">
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="classpulsar_1_1_typed_message_builder_3_01std_1_1string_01_4.html">   51</a></span><span class="keyword">class </span>TypedMessageBuilder&lt;std::string&gt; : <span class="keyword">public</span> MessageBuilder {</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>    <span class="comment">// The validator should throw an exception to indicate the message is corrupted.</span></div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span>    <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 id="l00055" name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>    TypedMessageBuilder(Validator validator = <span class="keyword">nullptr</span>) : validator_(validator) {}</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>    TypedMessageBuilder&amp; setValue(<span class="keyword">const</span> std::string&amp; value) {</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>        <span class="keywordflow">if</span> (validator_) {</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>            validator_(value.data(), value.size());</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>        }</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span>        <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a2cc0fde4d3dcc2aae68e6e1588c8d364">setContent</a>(value);</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span>    }</div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span> </div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>    TypedMessageBuilder&amp; setValue(std::string&amp;&amp; value) {</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>        <span class="keywordflow">if</span> (validator_) {</div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span>            validator_(value.data(), value.size());</div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span>        }</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>        <a class="code hl_function" href="classpulsar_1_1_message_builder.html#a2cc0fde4d3dcc2aae68e6e1588c8d364">setContent</a>(std::move(value));</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span>        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>    }</div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span> </div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span>    Validator validator_;</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>};</div>
+</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span><span class="keyword">using </span>BytesMessageBuilder = <a class="code hl_class" href="classpulsar_1_1_typed_message_builder.html">TypedMessageBuilder&lt;std::string&gt;</a>;</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>}  <span class="comment">// namespace pulsar</span></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_a2cc0fde4d3dcc2aae68e6e1588c8d364"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#a2cc0fde4d3dcc2aae68e6e1588c8d364">pulsar::MessageBuilder::setContent</a></div><div class="ttdeci">MessageBuilder &amp; setContent(const void *data, size_t size)</div></div>
+<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="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition</b> Authentication.h:31</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/annotated.html b/static/api/cpp/4.0.x/annotated.html
new file mode 100644
index 00000000000..fb72557e965
--- /dev/null
+++ b/static/api/cpp/4.0.x/annotated.html
@@ -0,0 +1,144 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="doc-content">
+<!-- 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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</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:dynsection.toggleLevel(1);">1</span><span onclick="javascript:dynsection.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="dynsection.toggleFolder('0_')"><span class="arrowhead opened"></span></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_" class="odd"><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_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_authentication.html" target="_self">Authentication</a></td><td class="desc"></td></tr>
+<tr id="row_0_2_" class="odd"><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_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_auth_tls.html" target="_self">AuthTls</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_" class="odd"><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_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_basic.html" target="_self">AuthBasic</a></td><td class="desc"></td></tr>
+<tr id="row_0_6_" class="odd"><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_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_oauth2_token_result.html" target="_self">Oauth2TokenResult</a></td><td class="desc"></td></tr>
+<tr id="row_0_8_" class="odd"><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_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_cached_token.html" target="_self">CachedToken</a></td><td class="desc"></td></tr>
+<tr id="row_0_10_" class="odd"><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_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_batch_receive_policy.html" target="_self">BatchReceivePolicy</a></td><td class="desc"></td></tr>
+<tr id="row_0_12_" class="odd"><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_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_client.html" target="_self">Client</a></td><td class="desc"></td></tr>
+<tr id="row_0_14_" class="odd"><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_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_console_logger_factory.html" target="_self">ConsoleLoggerFactory</a></td><td class="desc"></td></tr>
+<tr id="row_0_16_" class="odd"><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_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_configuration.html" target="_self">ConsumerConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_18_" class="odd"><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_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_consumer_interceptor.html" target="_self">ConsumerInterceptor</a></td><td class="desc"></td></tr>
+<tr id="row_0_20_" class="odd"><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_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_" class="odd"><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_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_dead_letter_policy_builder.html" target="_self">DeadLetterPolicyBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_0_24_" class="odd"><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_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="structpulsar_1_1_encryption_key.html" target="_self">EncryptionKey</a></td><td class="desc"></td></tr>
+<tr id="row_0_26_" class="odd"><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_context.html" target="_self">EncryptionContext</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_encryption_key_info.html" target="_self">EncryptionKeyInfo</a></td><td class="desc"></td></tr>
+<tr id="row_0_28_" class="odd"><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_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_key_shared_policy.html" target="_self">KeySharedPolicy</a></td><td class="desc"></td></tr>
+<tr id="row_0_30_" class="odd"><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_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_logger.html" target="_self">Logger</a></td><td class="desc"></td></tr>
+<tr id="row_0_32_" class="odd"><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_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.html" target="_self">Message</a></td><td class="desc"></td></tr>
+<tr id="row_0_34_" class="odd"><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_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_message_builder.html" target="_self">MessageBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_0_36_" class="odd"><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_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_message_id_builder.html" target="_self">MessageIdBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_0_38_" class="odd"><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_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.html" target="_self">Producer</a></td><td class="desc"></td></tr>
+<tr id="row_0_40_" class="odd"><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_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_producer_interceptor.html" target="_self">ProducerInterceptor</a></td><td class="desc"></td></tr>
+<tr id="row_0_42_" class="odd"><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_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_reader_configuration.html" target="_self">ReaderConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_44_" class="odd"><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_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_table_view.html" target="_self">TableView</a></td><td class="desc"></td></tr>
+<tr id="row_0_46_" class="odd"><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_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_topic_metadata.html" target="_self">TopicMetadata</a></td><td class="desc"></td></tr>
+<tr id="row_0_48_" class="odd"><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_49_" 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_50_" class="odd"><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_" class="odd"><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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/c_2_authentication_8h_source.html b/static/api/cpp/4.0.x/c_2_authentication_8h_source.html
new file mode 100644
index 00000000000..d915196bd75
--- /dev/null
+++ b/static/api/cpp/4.0.x/c_2_authentication_8h_source.html
@@ -0,0 +1,125 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li><li class="navelem"><b>c</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_authentication pulsar_authentication_t;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="keyword">typedef</span> <span class="keywordtype">char</span> *(*token_supplier)(<span class="keywordtype">void</span> *);</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *dynamicLibPath,</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>                                                                    <span class="keyword">const</span> <span class="keywordtype">char</span> *authParamsString);</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_tls_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *certificatePath,</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>                                                                        <span class="keyword">const</span> <span class="keywordtype">char</span> *privateKeyPath);</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_token_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *token);</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_token_create_with_supplier(</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>    token_supplier tokenSupplier, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_basic_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *username,</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>                                                                          <span class="keyword">const</span> <span class="keywordtype">char</span> *password);</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_athenz_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *authParamsString);</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span> </div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_oauth2_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *authParamsString);</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span> </div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_authentication_free(pulsar_authentication_t *authentication);</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span> </div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>}</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span><span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/c_2_client_8h_source.html b/static/api/cpp/4.0.x/c_2_client_8h_source.html
new file mode 100644
index 00000000000..9e7a1c77543
--- /dev/null
+++ b/static/api/cpp/4.0.x/c_2_client_8h_source.html
@@ -0,0 +1,205 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li><li class="navelem"><b>c</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/c/client_configuration.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/c/consumer.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#include &lt;pulsar/c/consumer_configuration.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#include &lt;pulsar/c/message.h&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;pulsar/c/message_id.h&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;pulsar/c/producer.h&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#include &lt;pulsar/c/producer_configuration.h&gt;</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="preprocessor">#include &lt;pulsar/c/reader.h&gt;</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#include &lt;pulsar/c/reader_configuration.h&gt;</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="preprocessor">#include &lt;pulsar/c/result.h&gt;</span></div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="preprocessor">#include &lt;pulsar/c/string_list.h&gt;</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="preprocessor">#include &lt;pulsar/c/table_view.h&gt;</span></div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="preprocessor">#include &lt;pulsar/c/table_view_configuration.h&gt;</span></div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_client pulsar_client_t;</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_producer pulsar_producer_t;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_string_list pulsar_string_list_t;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_client_configuration pulsar_client_configuration_t;</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_producer_configuration pulsar_producer_configuration_t;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span><span class="keyword">typedef</span> void (*pulsar_create_producer_callback)(pulsar_result result, pulsar_producer_t *producer, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span><span class="keyword">typedef</span> void (*pulsar_subscribe_callback)(pulsar_result result, pulsar_consumer_t *consumer, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span><span class="keyword">typedef</span> void (*pulsar_reader_callback)(pulsar_result result, pulsar_reader_t *reader, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span><span class="keyword">typedef</span> void (*pulsar_table_view_callback)(pulsar_result result, pulsar_table_view_t *tableView, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span><span class="keyword">typedef</span> void (*pulsar_get_partitions_callback)(pulsar_result result, pulsar_string_list_t *partitions,</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span>                                               <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span><span class="keyword">typedef</span> void (*pulsar_close_callback)(pulsar_result result, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span></div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>PULSAR_PUBLIC pulsar_client_t *pulsar_client_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *serviceUrl,</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>                                                    <span class="keyword">const</span> pulsar_client_configuration_t *clientConfiguration);</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span></div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span>PULSAR_PUBLIC pulsar_result pulsar_client_create_producer(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>                                                          <span class="keyword">const</span> pulsar_producer_configuration_t *conf,</div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span>                                                          pulsar_producer_t **producer);</div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span> </div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_create_producer_async(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span>                                                       <span class="keyword">const</span> pulsar_producer_configuration_t *conf,</div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span>                                                       pulsar_create_producer_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span>PULSAR_PUBLIC pulsar_result pulsar_client_subscribe(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>                                                    <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>                                                    <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>                                                    pulsar_consumer_t **consumer);</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_subscribe_async(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span>                                                 <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>                                                 <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span>                                                 pulsar_subscribe_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span></div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>PULSAR_PUBLIC pulsar_result pulsar_client_subscribe_multi_topics(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> **topics,</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span>                                                                 <span class="keywordtype">int</span> topicsCount,</div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span>                                                                 <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span>                                                                 <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span>                                                                 pulsar_consumer_t **consumer);</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span> </div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_subscribe_multi_topics_async(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> **topics,</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span>                                                              <span class="keywordtype">int</span> topicsCount, <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span>                                                              <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span>                                                              pulsar_subscribe_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span></div>
+<div class="line"><a id="l00130" name="l00130"></a><span class="lineno">  130</span>PULSAR_PUBLIC pulsar_result pulsar_client_subscribe_pattern(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topicPattern,</div>
+<div class="line"><a id="l00131" name="l00131"></a><span class="lineno">  131</span>                                                            <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno">  132</span>                                                            <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span>                                                            pulsar_consumer_t **consumer);</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span> </div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_subscribe_pattern_async(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topicPattern,</div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span>                                                         <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno">  137</span>                                                         <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno">  138</span>                                                         pulsar_subscribe_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span></div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno">  169</span>PULSAR_PUBLIC pulsar_result pulsar_client_create_reader(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span>                                                        <span class="keyword">const</span> pulsar_message_id_t *startMessageId,</div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span>                                                        pulsar_reader_configuration_t *conf,</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span>                                                        pulsar_reader_t **reader);</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_create_reader_async(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span>                                                     <span class="keyword">const</span> pulsar_message_id_t *startMessageId,</div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span>                                                     pulsar_reader_configuration_t *conf,</div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span>                                                     pulsar_reader_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno">  209</span>PULSAR_PUBLIC pulsar_result pulsar_client_create_table_view(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno">  210</span>                                                            pulsar_table_view_configuration_t *conf,</div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno">  211</span>                                                            pulsar_table_view_t **c_tableView);</div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span></div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_create_table_view_async(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span>                                                         pulsar_table_view_configuration_t *conf,</div>
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno">  225</span>                                                         pulsar_table_view_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span> </div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span>PULSAR_PUBLIC pulsar_result pulsar_client_get_topic_partitions(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span>                                                               pulsar_string_list_t **partitions);</div>
+<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span> </div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno">  230</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_get_topic_partitions_async(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span>                                                            pulsar_get_partitions_callback callback,</div>
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno">  232</span>                                                            <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno">  234</span>PULSAR_PUBLIC pulsar_result pulsar_client_close(pulsar_client_t *client);</div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_close_async(pulsar_client_t *client, pulsar_close_callback callback,</div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno">  237</span>                                             <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno">  238</span> </div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno">  239</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_free(pulsar_client_t *client);</div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span> </div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno">  241</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno">  242</span>}</div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno">  243</span><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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/c_2_consumer_8h_source.html b/static/api/cpp/4.0.x/c_2_consumer_8h_source.html
new file mode 100644
index 00000000000..0c34a28b82b
--- /dev/null
+++ b/static/api/cpp/4.0.x/c_2_consumer_8h_source.html
@@ -0,0 +1,207 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li><li class="navelem"><b>c</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;pulsar/c/message.h&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#include &lt;pulsar/c/messages.h&gt;</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="preprocessor">#include &lt;pulsar/c/result.h&gt;</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_consumer pulsar_consumer_t;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="keyword">typedef</span> void (*pulsar_result_callback)(pulsar_result, <span class="keywordtype">void</span> *);</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="keyword">typedef</span> void (*pulsar_receive_callback)(pulsar_result result, pulsar_message_t *msg, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="keyword">typedef</span> void (*pulsar_batch_receive_callback)(pulsar_result result, pulsar_messages_t *msgs, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_consumer_get_topic(pulsar_consumer_t *consumer);</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_consumer_get_subscription_name(pulsar_consumer_t *consumer);</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span></div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>PULSAR_PUBLIC pulsar_result pulsar_consumer_unsubscribe(pulsar_consumer_t *consumer);</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span></div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_unsubscribe_async(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>                                                     pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span></div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>PULSAR_PUBLIC pulsar_result pulsar_consumer_receive(pulsar_consumer_t *consumer, pulsar_message_t **msg);</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span></div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>PULSAR_PUBLIC pulsar_result pulsar_consumer_receive_with_timeout(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>                                                                 pulsar_message_t **msg, <span class="keywordtype">int</span> timeoutMs);</div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span></div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_receive_async(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span>                                                 pulsar_receive_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span></div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>PULSAR_PUBLIC pulsar_result pulsar_consumer_batch_receive(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span>                                                          pulsar_messages_t **msgs);</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span></div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno">  132</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_batch_receive_async(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span>                                                       pulsar_batch_receive_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span></div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span>PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span>                                                        pulsar_message_t *message);</div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span> </div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span>PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_id(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span>                                                           pulsar_message_id_t *messageId);</div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span></div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_acknowledge_async(pulsar_consumer_t *consumer, pulsar_message_t *message,</div>
+<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span>                                                     pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno">  163</span> </div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_acknowledge_async_id(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span>                                                        pulsar_message_id_t *messageId,</div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno">  166</span>                                                        pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span></div>
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno">  185</span>PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_cumulative(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span>                                                                   pulsar_message_t *message);</div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a id="l00188" name="l00188"></a><span class="lineno">  188</span>PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_cumulative_id(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00189" name="l00189"></a><span class="lineno">  189</span>                                                                      pulsar_message_id_t *messageId);</div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno">  190</span></div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_acknowledge_cumulative_async(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span>                                                                pulsar_message_t *message,</div>
+<div class="line"><a id="l00203" name="l00203"></a><span class="lineno">  203</span>                                                                pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00204" name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_acknowledge_cumulative_async_id(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span>                                                                   pulsar_message_id_t *messageId,</div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span>                                                                   pulsar_result_callback callback,</div>
+<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span>                                                                   <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno">  209</span></div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno">  222</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_negative_acknowledge(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span>                                                        pulsar_message_t *message);</div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span></div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno">  237</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_negative_acknowledge_id(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno">  238</span>                                                           pulsar_message_id_t *messageId);</div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno">  239</span> </div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span>PULSAR_PUBLIC pulsar_result pulsar_consumer_close(pulsar_consumer_t *consumer);</div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno">  241</span> </div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno">  242</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_close_async(pulsar_consumer_t *consumer, pulsar_result_callback callback,</div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno">  243</span>                                               <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno">  244</span> </div>
+<div class="line"><a id="l00245" name="l00245"></a><span class="lineno">  245</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_free(pulsar_consumer_t *consumer);</div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno">  246</span> </div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno">  247</span><span class="comment">/*</span></div>
+<div class="line"><a id="l00248" name="l00248"></a><span class="lineno">  248</span><span class="comment"> * Pause receiving messages via the messageListener, till resumeMessageListener() is called.</span></div>
+<div class="line"><a id="l00249" name="l00249"></a><span class="lineno">  249</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno">  250</span>PULSAR_PUBLIC pulsar_result pulsar_consumer_pause_message_listener(pulsar_consumer_t *consumer);</div>
+<div class="line"><a id="l00251" name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a id="l00252" name="l00252"></a><span class="lineno">  252</span><span class="comment">/*</span></div>
+<div class="line"><a id="l00253" name="l00253"></a><span class="lineno">  253</span><span class="comment"> * Resume receiving the messages via the messageListener.</span></div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno">  254</span><span class="comment"> * Asynchronously receive all the messages enqueued from time pauseMessageListener() was called.</span></div>
+<div class="line"><a id="l00255" name="l00255"></a><span class="lineno">  255</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00256" name="l00256"></a><span class="lineno">  256</span>PULSAR_PUBLIC pulsar_result resume_message_listener(pulsar_consumer_t *consumer);</div>
+<div class="line"><a id="l00257" name="l00257"></a><span class="lineno">  257</span></div>
+<div class="line"><a id="l00267" name="l00267"></a><span class="lineno">  267</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_redeliver_unacknowledged_messages(pulsar_consumer_t *consumer);</div>
+<div class="line"><a id="l00268" name="l00268"></a><span class="lineno">  268</span></div>
+<div class="line"><a id="l00278" name="l00278"></a><span class="lineno">  278</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_seek_async(pulsar_consumer_t *consumer, pulsar_message_id_t *messageId,</div>
+<div class="line"><a id="l00279" name="l00279"></a><span class="lineno">  279</span>                                              pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00280" name="l00280"></a><span class="lineno">  280</span></div>
+<div class="line"><a id="l00289" name="l00289"></a><span class="lineno">  289</span>PULSAR_PUBLIC pulsar_result pulsar_consumer_seek(pulsar_consumer_t *consumer, pulsar_message_id_t *messageId);</div>
+<div class="line"><a id="l00290" name="l00290"></a><span class="lineno">  290</span></div>
+<div class="line"><a id="l00300" name="l00300"></a><span class="lineno">  300</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_seek_by_timestamp_async(pulsar_consumer_t *consumer, uint64_t timestamp,</div>
+<div class="line"><a id="l00301" name="l00301"></a><span class="lineno">  301</span>                                                           pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00302" name="l00302"></a><span class="lineno">  302</span></div>
+<div class="line"><a id="l00311" name="l00311"></a><span class="lineno">  311</span>PULSAR_PUBLIC pulsar_result pulsar_consumer_seek_by_timestamp(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00312" name="l00312"></a><span class="lineno">  312</span>                                                              uint64_t timestamp);</div>
+<div class="line"><a id="l00313" name="l00313"></a><span class="lineno">  313</span> </div>
+<div class="line"><a id="l00314" name="l00314"></a><span class="lineno">  314</span>PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_consumer_is_connected(pulsar_consumer_t *consumer);</div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span> </div>
+<div class="line"><a id="l00316" name="l00316"></a><span class="lineno">  316</span>PULSAR_PUBLIC pulsar_result pulsar_consumer_get_last_message_id(pulsar_consumer_t *consumer,</div>
+<div class="line"><a id="l00317" name="l00317"></a><span class="lineno">  317</span>                                                                pulsar_message_id_t *messageId);</div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno">  318</span> </div>
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00320" name="l00320"></a><span class="lineno">  320</span>}</div>
+<div class="line"><a id="l00321" name="l00321"></a><span class="lineno">  321</span><span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/c_2_message_8h_source.html b/static/api/cpp/4.0.x/c_2_message_8h_source.html
new file mode 100644
index 00000000000..5464ecd7e12
--- /dev/null
+++ b/static/api/cpp/4.0.x/c_2_message_8h_source.html
@@ -0,0 +1,173 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li><li class="navelem"><b>c</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#include &quot;string_map.h&quot;</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_message pulsar_message_t;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_message_id pulsar_message_id_t;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>PULSAR_PUBLIC pulsar_message_t *pulsar_message_create();</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_copy(<span class="keyword">const</span> pulsar_message_t *from, pulsar_message_t *to);</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_free(pulsar_message_t *message);</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span> </div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_content(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span></div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_allocated_content(pulsar_message_t *message, <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_property(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>                                               <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span></div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_partition_key(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> *partitionKey);</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span></div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_ordering_key(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> *orderingKey);</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span></div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_event_timestamp(pulsar_message_t *message, uint64_t eventTimestamp);</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span></div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_sequence_id(pulsar_message_t *message, int64_t sequenceId);</div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span></div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_deliver_after(pulsar_message_t *message, uint64_t delayMillis);</div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span></div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_deliver_at(pulsar_message_t *message, uint64_t deliveryTimestampMillis);</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span></div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_replication_clusters(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> **clusters,</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>                                                           <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span></div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_disable_replication(pulsar_message_t *message, <span class="keywordtype">int</span> flag);</div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span></div>
+<div class="line"><a id="l00131" name="l00131"></a><span class="lineno">  131</span></div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno">  138</span>PULSAR_PUBLIC pulsar_string_map_t *pulsar_message_get_properties(pulsar_message_t *message);</div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span></div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span>PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_message_has_property(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span></div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_message_get_property(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno">  156</span></div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno">  163</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">void</span> *pulsar_message_get_data(pulsar_message_t *message);</div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span></div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span>PULSAR_PUBLIC uint32_t pulsar_message_get_length(pulsar_message_t *message);</div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span></div>
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno">  181</span>PULSAR_PUBLIC pulsar_message_id_t *pulsar_message_get_message_id(pulsar_message_t *message);</div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span></div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_message_get_partitionKey(pulsar_message_t *message);</div>
+<div class="line"><a id="l00188" name="l00188"></a><span class="lineno">  188</span>PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_message_has_partition_key(pulsar_message_t *message);</div>
+<div class="line"><a id="l00189" name="l00189"></a><span class="lineno">  189</span></div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_message_get_orderingKey(pulsar_message_t *message);</div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span>PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_message_has_ordering_key(pulsar_message_t *message);</div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span></div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span>PULSAR_PUBLIC uint64_t pulsar_message_get_publish_timestamp(pulsar_message_t *message);</div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span></div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span>PULSAR_PUBLIC uint64_t pulsar_message_get_event_timestamp(pulsar_message_t *message);</div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_message_get_topic_name(pulsar_message_t *message);</div>
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno">  209</span> </div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno">  210</span>PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_message_get_redelivery_count(pulsar_message_t *message);</div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno">  211</span> </div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span>PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_message_has_schema_version(pulsar_message_t *message);</div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno">  214</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_message_get_schemaVersion(pulsar_message_t *message);</div>
+<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_schema_version(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> *schemaVersion);</div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span></div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno">  222</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_message_get_producer_name(pulsar_message_t *message);</div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span> </div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno">  225</span>}</div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span><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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/c_2_producer_8h_source.html b/static/api/cpp/4.0.x/c_2_producer_8h_source.html
new file mode 100644
index 00000000000..762c3be4486
--- /dev/null
+++ b/static/api/cpp/4.0.x/c_2_producer_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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li><li class="navelem"><b>c</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#include &lt;pulsar/c/message.h&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#include &lt;pulsar/c/result.h&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_producer pulsar_producer_t;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keyword">typedef</span> void (*pulsar_send_callback)(pulsar_result, pulsar_message_id_t *msgId, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="keyword">typedef</span> void (*pulsar_close_callback)(pulsar_result, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="keyword">typedef</span> void (*pulsar_flush_callback)(pulsar_result, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_producer_get_topic(pulsar_producer_t *producer);</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_producer_get_producer_name(pulsar_producer_t *producer);</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span></div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>PULSAR_PUBLIC pulsar_result pulsar_producer_send(pulsar_producer_t *producer, pulsar_message_t *msg);</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span></div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_producer_send_async(pulsar_producer_t *producer, pulsar_message_t *msg,</div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span>                                              pulsar_send_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span></div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span>PULSAR_PUBLIC int64_t pulsar_producer_get_last_sequence_id(pulsar_producer_t *producer);</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span></div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span>PULSAR_PUBLIC pulsar_result pulsar_producer_close(pulsar_producer_t *producer);</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span></div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_producer_close_async(pulsar_producer_t *producer, pulsar_close_callback callback,</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span>                                               <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span> </div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span><span class="comment">// Flush all the messages buffered in the client and wait until all messages have been successfully persisted.</span></div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span>PULSAR_PUBLIC pulsar_result pulsar_producer_flush(pulsar_producer_t *producer);</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span> </div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_producer_flush_async(pulsar_producer_t *producer, pulsar_flush_callback callback,</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>                                               <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span> </div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_producer_free(pulsar_producer_t *producer);</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span> </div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span>PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_producer_is_connected(pulsar_producer_t *producer);</div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span> </div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span>}</div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span><span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/c_2_reader_8h_source.html b/static/api/cpp/4.0.x/c_2_reader_8h_source.html
new file mode 100644
index 00000000000..466154a6c91
--- /dev/null
+++ b/static/api/cpp/4.0.x/c_2_reader_8h_source.html
@@ -0,0 +1,135 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li><li class="navelem"><b>c</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#include &lt;pulsar/c/message.h&gt;</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/c/result.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_reader pulsar_reader_t;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="keyword">typedef</span> void (*pulsar_result_callback)(pulsar_result, <span class="keywordtype">void</span> *);</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_reader_get_topic(pulsar_reader_t *reader);</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>PULSAR_PUBLIC pulsar_result pulsar_reader_read_next(pulsar_reader_t *reader, pulsar_message_t **msg);</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span></div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>PULSAR_PUBLIC pulsar_result pulsar_reader_read_next_with_timeout(pulsar_reader_t *reader,</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>                                                                 pulsar_message_t **msg, <span class="keywordtype">int</span> timeoutMs);</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span></div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_reader_seek_async(pulsar_reader_t *reader, pulsar_message_id_t *messageId,</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>                                            pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span></div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span>PULSAR_PUBLIC pulsar_result pulsar_reader_seek(pulsar_reader_t *reader, pulsar_message_id_t *messageId);</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span></div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_reader_seek_by_timestamp_async(pulsar_reader_t *reader, uint64_t timestamp,</div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span>                                                         pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span></div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>PULSAR_PUBLIC pulsar_result pulsar_reader_seek_by_timestamp(pulsar_reader_t *reader, uint64_t timestamp);</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span> </div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>PULSAR_PUBLIC pulsar_result pulsar_reader_close(pulsar_reader_t *reader);</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span> </div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_reader_close_async(pulsar_reader_t *reader, pulsar_result_callback callback,</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span>                                             <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span>PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_reader_free(pulsar_reader_t *reader);</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span>PULSAR_PUBLIC pulsar_result pulsar_reader_has_message_available(pulsar_reader_t *reader, <span class="keywordtype">int</span> *available);</div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span> </div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span>PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_reader_is_connected(pulsar_reader_t *reader);</div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span> </div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span>}</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span><span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/c_2_result_8h_source.html b/static/api/cpp/4.0.x/c_2_result_8h_source.html
new file mode 100644
index 00000000000..aca52ec82a8
--- /dev/null
+++ b/static/api/cpp/4.0.x/c_2_result_8h_source.html
@@ -0,0 +1,166 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>include</b></li><li class="navelem"><b>pulsar</b></li><li class="navelem"><b>c</b></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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 id="l00001" name="l00001"></a><span class="lineno">    1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#pragma once</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>{</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    pulsar_result_Ok,  </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>    pulsar_result_UnknownError,  </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>    pulsar_result_InvalidConfiguration,  </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>    pulsar_result_Timeout,       </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    pulsar_result_LookupError,   </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>    pulsar_result_ConnectError,  </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>    pulsar_result_ReadError,     </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>    pulsar_result_AuthenticationError,             </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>    pulsar_result_AuthorizationError,              </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>    pulsar_result_ErrorGettingAuthenticationData,  </div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>    pulsar_result_BrokerMetadataError,     </div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>    pulsar_result_BrokerPersistenceError,  </div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>    pulsar_result_ChecksumError,           </div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span> </div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>    pulsar_result_ConsumerBusy,   </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>    pulsar_result_NotConnected,   </div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>    pulsar_result_AlreadyClosed,  </div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span> </div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>    pulsar_result_InvalidMessage,  </div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span> </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>    pulsar_result_ConsumerNotInitialized,         </div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>    pulsar_result_ProducerNotInitialized,         </div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>    pulsar_result_ProducerBusy,                   </div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>    pulsar_result_TooManyLookupRequestException,  </div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span> </div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>    pulsar_result_InvalidTopicName,  </div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>    pulsar_result_InvalidUrl,        </div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>    pulsar_result_ServiceUnitNotReady,  </div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>    pulsar_result_OperationNotSupported,</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>    pulsar_result_ProducerBlockedQuotaExceededError,      </div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span>    pulsar_result_ProducerBlockedQuotaExceededException,  </div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span>    pulsar_result_ProducerQueueIsFull,                    </div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>    pulsar_result_MessageTooBig,                          </div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span>    pulsar_result_TopicNotFound,                          </div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>    pulsar_result_SubscriptionNotFound,                   </div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>    pulsar_result_ConsumerNotFound,                       </div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span>    pulsar_result_UnsupportedVersionError,  </div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>    pulsar_result_TopicTerminated,          </div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>    pulsar_result_CryptoError,              </div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>    pulsar_result_IncompatibleSchema,   </div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span>    pulsar_result_ConsumerAssignError,  </div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span>    pulsar_result_CumulativeAcknowledgementNotAllowedError,  </div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span>    pulsar_result_TransactionCoordinatorNotFoundError,  </div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>    pulsar_result_InvalidTxnStatusError,                </div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>    pulsar_result_NotAllowedError,                      </div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>    pulsar_result_TransactionConflict,                  </div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>    pulsar_result_TransactionNotFound,                  </div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>    pulsar_result_ProducerFenced,                       </div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>    pulsar_result_MemoryBufferIsFull,  </div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span>    pulsar_result_Interrupted,         </div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span>} pulsar_result;</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span> </div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span><span class="comment">// Return string representation of result code</span></div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span>PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_result_str(pulsar_result result);</div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>}</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span><span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/classes.html b/static/api/cpp/4.0.x/classes.html
new file mode 100644
index 00000000000..ab2208ed454
--- /dev/null
+++ b/static/api/cpp/4.0.x/classes.html
@@ -0,0 +1,130 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="doc-content">
+<!-- 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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</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;|& [...]
+<div class="classindex">
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_A" name="letter_A">A</a></dt>
+<dd><a class="el" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_auth_basic.html">AuthBasic</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_authentication.html">Authentication</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_authentication_data_provider.html">AuthenticationDa [...]
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_B" name="letter_B">B</a></dt>
+<dd><a class="el" href="classpulsar_1_1_batch_receive_policy.html">BatchReceivePolicy</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_C" name="letter_C">C</a></dt>
+<dd><a class="el" href="classpulsar_1_1_cached_token.html">CachedToken</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_client.html">Client</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_console_logger_factory.html">ConsoleLoggerFac [...]
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_D" name="letter_D">D</a></dt>
+<dd><a class="el" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_dead_letter_policy_builder.html">DeadLetterPolicyBuilder</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_default_crypto_key_reader.html">DefaultCryptoKeyReader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="class [...]
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_E" name="letter_E">E</a></dt>
+<dd><a class="el" href="classpulsar_1_1_encryption_context.html">EncryptionContext</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="structpulsar_1_1_encryption_key.html">EncryptionKey</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_F" name="letter_F">F</a></dt>
+<dd><a class="el" href="classpulsar_1_1_file_logger_factory.html">FileLoggerFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_K" name="letter_K">K</a></dt>
+<dd><a class="el" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_key_value.html">KeyValue</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_L" name="letter_L">L</a></dt>
+<dd><a class="el" href="classpulsar_1_1_logger.html">Logger</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_M" name="letter_M">M</a></dt>
+<dd><a class="el" href="classpulsar_1_1_message.html">Message</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_message_batch.html">MessageBatch</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_message_id.html">MessageId</a> (<a class="el" href= [...]
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_O" name="letter_O">O</a></dt>
+<dd><a class="el" href="classpulsar_1_1_oauth2_flow.html">Oauth2Flow</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_oauth2_token_result.html">Oauth2TokenResult</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_P" name="letter_P">P</a></dt>
+<dd><a class="el" href="classpulsar_1_1_producer.html">Producer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_producer_interceptor.html">ProducerInterceptor</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="structpulsar__consumer__batch__receiv [...]
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_R" name="letter_R">R</a></dt>
+<dd><a class="el" href="classpulsar_1_1_reader.html">Reader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_S" name="letter_S">S</a></dt>
+<dd><a class="el" href="classpulsar_1_1_schema_info.html">SchemaInfo</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_T" name="letter_T">T</a></dt>
+<dd><a class="el" href="classpulsar_1_1_table_view.html">TableView</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="structpulsar_1_1_table_view_configuration.html">TableViewConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_topic_metadata.html">TopicMetadata</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)</dd><dd><a class="el" href="classpulsar_1_1_typed_message.html">TypedM [...]
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/classpulsar_1_1_auth_athenz-members.html b/static/api/cpp/4.0.x/classpulsar_1_1_auth_athenz-members.html
new file mode 100644
index 00000000000..073690e74b2
--- /dev/null
+++ b/static/api/cpp/4.0.x/classpulsar_1_1_auth_athenz-members.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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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" class="odd"><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 class="odd"><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 class="odd"><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 class="odd"><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" class="odd"><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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0
+</small></address>
+</div><!-- doc-content -->
+</body>
+</html>
diff --git a/static/api/cpp/4.0.x/classpulsar_1_1_auth_athenz.html b/static/api/cpp/4.0.x/classpulsar_1_1_auth_athenz.html
new file mode 100644
index 00000000000..0fcc7aed878
--- /dev/null
+++ b/static/api/cpp/4.0.x/classpulsar_1_1_auth_athenz.html
@@ -0,0 +1,255 @@
+<!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" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.15.0"/>
+<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>
+<script type="text/javascript" src="clipboard.js"></script>
+<script type="text/javascript" src="cookie.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>
+<script type="text/javascript" src="darkmode_toggle.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 id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.15.0 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+</script>
+<script type="text/javascript">
+$(function() { codefold.init(); });
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search',false);
+  $(function() { init_search(); });
+});
+</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">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div id="doc-content">
+<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_3A_3AAuthAthenz_map" alt=""/>
+  <map id="pulsar_3A_3AAuthAthenz_map" name="pulsar_3A_3AAuthAthenz_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 id="header-pub-methods" class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ab4ed3eadbc72cabc8ff942e0ebdc053d" id="r_ab4ed3eadbc72cabc8ff942e0ebdc053d"><td class="memItemLeft" align="right" valign="top"><a id="ab4ed3eadbc72cabc8ff942e0ebdc053d" name="ab4ed3eadbc72cabc8ff942e0ebdc053d"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>AuthAthenz</b> (AuthenticationDataPtr &amp;)</td></tr>
+<tr class="memitem:a65405a1cfd2ec3efcaeea3ed8269fa47" id="r_a65405a1cfd2ec3efcaeea3ed8269fa47"><td class="memItemLeft" align="right" valign="top">const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a65405a1cfd2ec3efcaeea3ed8269fa47">getAuthMethodName</a> () const</td></tr>
+<tr class="memitem:a274c9e677c536166fd1d4f8af6161546" id="r_a274c9e677c536166fd1d4f8af6161546"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#a23832680be30b95d54755b56310e9079">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a274c9e677c536166fd1d4f8af6161546">getAuthData</a> (AuthenticationDataPtr &amp;authDataAthenz)</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 id="header-pub-static-methods" class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:acde69fc41668a27d12d558023aaed0d9" id="r_acde69fc41668a27d12d558023aaed0d9"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acde69fc41668a27d12d558023aaed0d9">create</a> (ParamMap &amp;params)</td></tr>
+<tr class="memitem:afd40a525e1d8d61fc97880c2c8a958fe" id="r_afd40a525e1d8d61fc97880c2c8a958fe"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afd40a525e1d8d61fc97880c2c8a958fe">create</a> (const std::string &amp;authParamsString)</td></tr>
+<tr class="inherit_header pub_static_methods_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_static_methods_classpulsar_1_1_authentication')"><span class="dynarrow"><span class="arrowhead closed"></span></span>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" id="r_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>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 id="header-inherited" class="groupheader"><a id="inherited" name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_attribs_classpulsar_1_1_authentication')"><span class="dynarrow"><span class="arrowhead closed"></span></span>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" id="r_abac33d5c492826fb8a4bea05512c9f7c"><td class="memItemLeft" align="right" valign="top">
+AuthenticationDataPtr&#160;</td><td class="memItemRight" valign="bottom"><b>authData_</b></td></tr>
+</table>
+<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Athenz implementation of Pulsar client authentication </p>
+</div><a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Member Function Documentation</h2>
+<a id="afd40a525e1d8d61fc97880c2c8a958fe" name="afd40a525e1d8d61fc97880c2c8a958fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd40a525e1d8d61fc97880c2c8a958fe">&#9670;&#160;</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">AuthenticationPtr pulsar::AuthAthenz::create </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>authParamsString</em></span></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel static">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" name="acde69fc41668a27d12d558023aaed0d9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acde69fc41668a27d12d558023aaed0d9">&#9670;&#160;</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">AuthenticationPtr pulsar::AuthAthenz::create </td>
+          <td>(</td>
+          <td class="paramtype">ParamMap &amp;</td>          <td class="paramname"><span class="paramname"><em>params</em></span></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel static">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>
... 42133 lines suppressed ...