You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2018/02/02 08:15:59 UTC

[incubator-pulsar] branch asf-site updated: Updated site at revision 9a081ad

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

mmerli pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 85a296a  Updated site at revision 9a081ad
85a296a is described below

commit 85a296a87327b12a479526a21a72587d0373b7de
Author: jenkins <bu...@apache.org>
AuthorDate: Fri Feb 2 08:15:52 2018 +0000

    Updated site at revision 9a081ad
---
 content/api/cpp/annotated.html                     |  22 ++--
 content/api/cpp/classes.html                       |  24 ++--
 ...spulsar_1_1_consumer_configuration-members.html |  25 ++--
 .../classpulsar_1_1_consumer_configuration.html    |  15 +++
 .../classpulsar_1_1_crypto_key_reader-members.html | 109 ++++++++++++++++
 .../api/cpp/classpulsar_1_1_crypto_key_reader.html | 119 +++++++++++++++++
 ...lasspulsar_1_1_encryption_key_info-members.html | 114 +++++++++++++++++
 .../cpp/classpulsar_1_1_encryption_key_info.html   | 142 +++++++++++++++++++++
 ...spulsar_1_1_producer_configuration-members.html |  71 ++++++-----
 .../classpulsar_1_1_producer_configuration.html    |  21 +++
 content/api/cpp/files.html                         |  28 ++--
 content/api/cpp/hierarchy.html                     |  26 ++--
 content/api/cpp/namespacemembers.html              |   6 +
 content/api/cpp/namespacemembers_eval.html         |   6 +
 content/api/cpp/namespacepulsar.html               |  32 ++++-
 content/api/cpp/search/all_2.js                    |   3 +-
 content/api/cpp/search/all_4.js                    |   3 +-
 content/api/cpp/search/all_b.js                    |   2 +
 content/api/cpp/search/classes_2.js                |   3 +-
 content/api/cpp/search/classes_4.js                |   5 +-
 content/api/cpp/search/classes_5.js                |   6 +-
 content/api/cpp/search/classes_6.js                |   4 +-
 content/api/cpp/search/classes_7.js                |   3 +-
 content/api/cpp/search/classes_8.html              |  26 ++++
 .../api/cpp/search/{classes_7.js => classes_8.js}  |   0
 content/api/cpp/search/enumvalues_1.js             |   2 +
 content/api/cpp/search/searchdata.js               |   2 +-
 content/docs/latest/deployment/instance/index.html |  10 +-
 content/ja/deployment/InstanceSetup/index.html     |  12 +-
 29 files changed, 728 insertions(+), 113 deletions(-)

diff --git a/content/api/cpp/annotated.html b/content/api/cpp/annotated.html
index 9772a89..d4dd7cf 100644
--- a/content/api/cpp/annotated.html
+++ b/content/api/cpp/annotated.html
@@ -100,16 +100,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_client_configuration.html" target="_self">ClientConfiguration</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_consumer.html" target="_self">Consumer</a></td><td class="desc"></td></tr>
 <tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_consumer_configuration.html" target="_self">ConsumerConfiguration</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_deprecated_exception.html" target="_self">DeprecatedException</a></td><td class="desc"></td></tr>
-<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message.html" target="_self">Message</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_message_builder.html" target="_self">MessageBuilder</a></td><td class="desc"></td></tr>
-<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_id.html" target="_self">MessageId</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_message_routing_policy.html" target="_self">MessageRoutingPolicy</a></td><td class="desc"></td></tr>
-<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer.html" target="_self">Producer</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_producer_configuration.html" target="_self">ProducerConfiguration</a></td><td class="desc"></td></tr>
-<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader.html" target="_self">Reader</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_reader_configuration.html" target="_self">ReaderConfiguration</a></td><td class="desc"></td></tr>
-<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_topic_metadata.html" target="_self">TopicMetadata</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_crypto_key_reader.html" target="_self">CryptoKeyReader</a></td><td class="desc"></td></tr>
+<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_deprecated_exception.html" target="_self">DeprecatedException</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_encryption_key_info.html" target="_self">EncryptionKeyInfo</a></td><td class="desc"></td></tr>
+<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message.html" target="_self">Message</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_message_builder.html" target="_self">MessageBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_id.html" target="_self">MessageId</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_message_routing_policy.html" target="_self">MessageRoutingPolicy</a></td><td class="desc"></td></tr>
+<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer.html" target="_self">Producer</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_producer_configuration.html" target="_self">ProducerConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader.html" target="_self">Reader</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_reader_configuration.html" target="_self">ReaderConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_20_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_topic_metadata.html" target="_self">TopicMetadata</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
diff --git a/content/api/cpp/classes.html b/content/api/cpp/classes.html
index 6f8b074..439ef90 100644
--- a/content/api/cpp/classes.html
+++ b/content/api/cpp/classes.html
@@ -88,28 +88,30 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <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_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a></div>
+<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_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a></div>
 <table class="classindex">
 <tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;A&#160;&#160;</div></td></tr></table>
 </td><td valign="top"><a class="el" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;D&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classpulsar_1_1_message_id.html">MessageId</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td></tr>
+</td><td valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td></tr>
 <tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;T&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classpulsar_1_1_message_id.html">MessageId</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;T&#160;&#160;</div></td></tr></table>
 </td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication.html">Authentication</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&# [...]
-</td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication_data_provider.html">AuthenticationDataProvider</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_client.html">Client</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#1 [...]
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication.html">Authentication</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a> (<a class="el" href="namespace [...]
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication_data_provider.html">AuthenticationDataProvider</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_client.html">Client</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#1 [...]
+</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
 </td><td valign="top"><a class="el" href="classpulsar_1_1_topic_metadata.html">TopicMetadata</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_producer.html">Producer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;& [...]
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td></tr>
 <tr><td rowspan="2" valign="bottom"><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;B&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classpulsar_1_1_consumer.html">Consumer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_message.html">Message</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160 [...]
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#1 [...]
+</td><td valign="top"><a class="el" href="classpulsar_1_1_consumer.html">Consumer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_producer.html">Producer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#16 [...]
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;M&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_batch_message_id.html">BatchMessageId</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;R [...]
 </td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_batch_message_id.html">BatchMessageId</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td><td></td><td></td></tr>
+<tr><td></td><td></td><td valign="top"><a class="el" href="classpulsar_1_1_message.html">Message</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td></tr>
 <tr><td></td><td></td><td></td><td valign="top"><a class="el" href="classpulsar_1_1_reader.html">Reader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td></tr>
 <tr><td></td><td></td><td></td><td></td><td></td></tr>
 </table>
-<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a></div>
+<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_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a></div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/content/api/cpp/classpulsar_1_1_consumer_configuration-members.html b/content/api/cpp/classpulsar_1_1_consumer_configuration-members.html
index 721274e..0576b58 100644
--- a/content/api/cpp/classpulsar_1_1_consumer_configuration-members.html
+++ b/content/api/cpp/classpulsar_1_1_consumer_configuration-members.html
@@ -100,21 +100,26 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#a8dbae5f4af0e2bd078419096c9cdd8e6">getBrokerConsumerStatsCacheTimeInMs</a>() const </td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>getConsumerName</b>() const  (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getConsumerType</b>() const  (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getCryptoFailureAction</b>() const  (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getCryptoKeyReader</b>() const  (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#a2ad7b00cae770f1f75ad5791ddf22052">getMaxTotalReceiverQueueSizeAcrossPartitions</a>() const </td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getMessageListener</b>() const  (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>getReceiverQueueSize</b>() const  (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#ad07ae5670961401470b6e98541ddcbf7">getUnAckedMessagesTimeoutMs</a>() const </td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>hasMessageListener</b>() const  (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const ConsumerConfiguration &amp;) (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>PulsarWrapper</b> (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#a453a6af922fea7c45d56264d57925507">setBrokerConsumerStatsCacheTimeInMs</a>(const long cacheTimeInMs)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setConsumerName</b>(const std::string &amp;) (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#ace6b2f1da486fcffacc4e877e5533268">setConsumerType</a>(ConsumerType consumerType)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#a9c07888abe996b80c2fd168278a24de3">setMaxTotalReceiverQueueSizeAcrossPartitions</a>(int maxTotalReceiverQueueSizeAcrossPartitions)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#aeb4301821f8f471c6c542f486df9639d">setMessageListener</a>(MessageListener messageListener)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#a265d2cd1e9d1d329eff9b98346f245c2">setReceiverQueueSize</a>(int size)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#ad55a4f0187517c984de8d01f8660fb8f">setUnAckedMessagesTimeoutMs</a>(const uint64_t milliSeconds)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>~ConsumerConfiguration</b>() (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>isEncryptionEnabled</b>() const  (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const ConsumerConfiguration &amp;) (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PulsarWrapper</b> (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#a453a6af922fea7c45d56264d57925507">setBrokerConsumerStatsCacheTimeInMs</a>(const long cacheTimeInMs)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setConsumerName</b>(const std::string &amp;) (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#ace6b2f1da486fcffacc4e877e5533268">setConsumerType</a>(ConsumerType consumerType)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setCryptoFailureAction</b>(ConsumerCryptoFailureAction action) (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setCryptoKeyReader</b>(CryptoKeyReaderPtr cryptoKeyReader) (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#a9c07888abe996b80c2fd168278a24de3">setMaxTotalReceiverQueueSizeAcrossPartitions</a>(int maxTotalReceiverQueueSizeAcrossPartitions)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#aeb4301821f8f471c6c542f486df9639d">setMessageListener</a>(MessageListener messageListener)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#a265d2cd1e9d1d329eff9b98346f245c2">setReceiverQueueSize</a>(int size)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html#ad55a4f0187517c984de8d01f8660fb8f">setUnAckedMessagesTimeoutMs</a>(const uint64_t milliSeconds)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~ConsumerConfiguration</b>() (defined in <a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/content/api/cpp/classpulsar_1_1_consumer_configuration.html b/content/api/cpp/classpulsar_1_1_consumer_configuration.html
index e312fd6..ef8c598 100644
--- a/content/api/cpp/classpulsar_1_1_consumer_configuration.html
+++ b/content/api/cpp/classpulsar_1_1_consumer_configuration.html
@@ -143,6 +143,21 @@ const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>ge
 <tr class="separator:a453a6af922fea7c45d56264d57925507"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a8dbae5f4af0e2bd078419096c9cdd8e6"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_consumer_configuration.html#a8dbae5f4af0e2bd078419096c9cdd8e6">getBrokerConsumerStatsCacheTimeInMs</a> () const </td></tr>
 <tr class="separator:a8dbae5f4af0e2bd078419096c9cdd8e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d35d794814ec16a583e10030ab2911d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d35d794814ec16a583e10030ab2911d"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>isEncryptionEnabled</b> () const </td></tr>
+<tr class="separator:a6d35d794814ec16a583e10030ab2911d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b1361de29d65b4bb9b01d96909dd264"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b1361de29d65b4bb9b01d96909dd264"></a>
+const CryptoKeyReaderPtr&#160;</td><td class="memItemRight" valign="bottom"><b>getCryptoKeyReader</b> () const </td></tr>
+<tr class="separator:a4b1361de29d65b4bb9b01d96909dd264"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa9c36fc44ee17ab41a36a6e53cb5dd23"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9c36fc44ee17ab41a36a6e53cb5dd23"></a>
+<a class="el" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setCryptoKeyReader</b> (CryptoKeyReaderPtr cryptoKeyReader)</td></tr>
+<tr class="separator:aa9c36fc44ee17ab41a36a6e53cb5dd23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad406b2e5f5fd894f8796f91f17e83ad6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad406b2e5f5fd894f8796f91f17e83ad6"></a>
+ConsumerCryptoFailureAction&#160;</td><td class="memItemRight" valign="bottom"><b>getCryptoFailureAction</b> () const </td></tr>
+<tr class="separator:ad406b2e5f5fd894f8796f91f17e83ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6baa4dbfe938c813385d263ef5dc1e04"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6baa4dbfe938c813385d263ef5dc1e04"></a>
+<a class="el" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setCryptoFailureAction</b> (ConsumerCryptoFailureAction action)</td></tr>
+<tr class="separator:a6baa4dbfe938c813385d263ef5dc1e04"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
 Friends</h2></td></tr>
diff --git a/content/api/cpp/classpulsar_1_1_crypto_key_reader-members.html b/content/api/cpp/classpulsar_1_1_crypto_key_reader-members.html
new file mode 100644
index 0000000..fe99b7c
--- /dev/null
+++ b/content/api/cpp/classpulsar_1_1_crypto_key_reader-members.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>pulsar-client-cpp: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">pulsar::CryptoKeyReader 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_crypto_key_reader.html">pulsar::CryptoKeyReader</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CryptoKeyReader</b>() (defined in <a class="el" href="classpulsar_1_1_crypto_key_reader.html">pulsar::CryptoKeyReader</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_crypto_key_reader.html">pulsar::CryptoKeyReader</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getPrivateKey</b>(const std::string &amp;keyName, std::map&lt; std::string, std::string &gt; &amp;metadata, EncryptionKeyInfo &amp;encKeyInfo) const =0 (defined in <a class="el" href="classpulsar_1_1_crypto_key_reader.html">pulsar::CryptoKeyReader</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_crypto_key_reader.html">pulsar::CryptoKeyReader</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getPublicKey</b>(const std::string &amp;keyName, std::map&lt; std::string, std::string &gt; &amp;metadata, EncryptionKeyInfo &amp;encKeyInfo) const =0 (defined in <a class="el" href="classpulsar_1_1_crypto_key_reader.html">pulsar::CryptoKeyReader</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_crypto_key_reader.html">pulsar::CryptoKeyReader</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
diff --git a/content/api/cpp/classpulsar_1_1_crypto_key_reader.html b/content/api/cpp/classpulsar_1_1_crypto_key_reader.html
new file mode 100644
index 0000000..8931bee
--- /dev/null
+++ b/content/api/cpp/classpulsar_1_1_crypto_key_reader.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>pulsar-client-cpp: pulsar::CryptoKeyReader Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classpulsar_1_1_crypto_key_reader-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">pulsar::CryptoKeyReader Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a57456a577dc20b00229bb139bf025aee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a57456a577dc20b00229bb139bf025aee"></a>
+virtual <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getPublicKey</b> (const std::string &amp;keyName, std::map&lt; std::string, std::string &gt; &amp;metadata, <a class="el" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a> &amp;encKeyInfo) const =0</td></tr>
+<tr class="separator:a57456a577dc20b00229bb139bf025aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33a3b281068df053226bb50b59280be0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a33a3b281068df053226bb50b59280be0"></a>
+virtual <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getPrivateKey</b> (const std::string &amp;keyName, std::map&lt; std::string, std::string &gt; &amp;metadata, <a class="el" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a> &amp;encKeyInfo) const =0</td></tr>
+<tr class="separator:a33a3b281068df053226bb50b59280be0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/pulsar/<a class="el" href="_crypto_key_reader_8h_source.html">CryptoKeyReader.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
diff --git a/content/api/cpp/classpulsar_1_1_encryption_key_info-members.html b/content/api/cpp/classpulsar_1_1_encryption_key_info-members.html
new file mode 100644
index 0000000..8197c53
--- /dev/null
+++ b/content/api/cpp/classpulsar_1_1_encryption_key_info-members.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>pulsar-client-cpp: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">pulsar::EncryptionKeyInfo 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_encryption_key_info.html">pulsar::EncryptionKeyInfo</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>EncryptionKeyInfo</b>() (defined in <a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>EncryptionKeyInfo</b>(std::string key, StringMap &amp;metadata) (defined in <a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getKey</b>() (defined in <a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getMetadata</b>(void) (defined in <a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PulsarWrapper</b> (defined in <a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setKey</b>(std::string key) (defined in <a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setMetadata</b>(StringMap &amp;metadata) (defined in <a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>StringMap</b> typedef (defined in <a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
diff --git a/content/api/cpp/classpulsar_1_1_encryption_key_info.html b/content/api/cpp/classpulsar_1_1_encryption_key_info.html
new file mode 100644
index 0000000..5b99714
--- /dev/null
+++ b/content/api/cpp/classpulsar_1_1_encryption_key_info.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>pulsar-client-cpp: pulsar::EncryptionKeyInfo Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">pulsar-client-cpp
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#friends">Friends</a> &#124;
+<a href="classpulsar_1_1_encryption_key_info-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">pulsar::EncryptionKeyInfo Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:a3d0632749aecb54c874be9abcc64d5d9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3d0632749aecb54c874be9abcc64d5d9"></a>
+typedef std::map&lt; std::string, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>StringMap</b></td></tr>
+<tr class="separator:a3d0632749aecb54c874be9abcc64d5d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ab5a636493c0a9dc6c4e8ddbf1d0524d9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab5a636493c0a9dc6c4e8ddbf1d0524d9"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>EncryptionKeyInfo</b> (std::string key, StringMap &amp;metadata)</td></tr>
+<tr class="separator:ab5a636493c0a9dc6c4e8ddbf1d0524d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af737e7bb9906c8a046b29583b3369489"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af737e7bb9906c8a046b29583b3369489"></a>
+std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getKey</b> ()</td></tr>
+<tr class="separator:af737e7bb9906c8a046b29583b3369489"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a243fb74066b5d6c7153660a4a5cd3290"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a243fb74066b5d6c7153660a4a5cd3290"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setKey</b> (std::string key)</td></tr>
+<tr class="separator:a243fb74066b5d6c7153660a4a5cd3290"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a360c373366872504f701a8238e67d468"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a360c373366872504f701a8238e67d468"></a>
+StringMap &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getMetadata</b> (void)</td></tr>
+<tr class="separator:a360c373366872504f701a8238e67d468"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ae2f1225fb8897ebbcc74cc7753cfaf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ae2f1225fb8897ebbcc74cc7753cfaf"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setMetadata</b> (StringMap &amp;metadata)</td></tr>
+<tr class="separator:a7ae2f1225fb8897ebbcc74cc7753cfaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
+Friends</h2></td></tr>
+<tr class="memitem:aec24ec969dcf4df0185304ccbf6d653c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec24ec969dcf4df0185304ccbf6d653c"></a>
+class&#160;</td><td class="memItemRight" valign="bottom"><b>PulsarWrapper</b></td></tr>
+<tr class="separator:aec24ec969dcf4df0185304ccbf6d653c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/pulsar/<a class="el" href="_encryption_key_info_8h_source.html">EncryptionKeyInfo.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
diff --git a/content/api/cpp/classpulsar_1_1_producer_configuration-members.html b/content/api/cpp/classpulsar_1_1_producer_configuration-members.html
index 76b9842..e8f03c5 100644
--- a/content/api/cpp/classpulsar_1_1_producer_configuration-members.html
+++ b/content/api/cpp/classpulsar_1_1_producer_configuration-members.html
@@ -95,14 +95,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 
 <p>This is the complete list of members for <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>BoostHash</b> enum value (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>CustomPartition</b> enum value (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getBatchingEnabled</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>getBatchingMaxAllowedSizeInBytes</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getBatchingMaxMessages</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>getBatchingMaxPublishDelayMs</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getBlockIfQueueFull</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>getCompressionType</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>addEncryptionKey</b>(std::string key) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>BoostHash</b> enum value (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CustomPartition</b> enum value (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getBatchingEnabled</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getBatchingMaxAllowedSizeInBytes</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getBatchingMaxMessages</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getBatchingMaxPublishDelayMs</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getBlockIfQueueFull</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getCompressionType</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getCryptoFailureAction</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getCryptoKeyReader</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getEncryptionKeys</b>() (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getHashingScheme</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>getInitialSequenceId</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getMaxPendingMessages</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
@@ -112,30 +116,33 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getProducerName</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>getSendTimeout</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>HashingScheme</b> enum name (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>JavaStringHash</b> enum value (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Murmur3_32Hash</b> enum value (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const ProducerConfiguration &amp;) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PartitionsRoutingMode</b> enum name (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>ProducerConfiguration</b>() (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ProducerConfiguration</b>(const ProducerConfiguration &amp;) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>PulsarWrapper</b> (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>RoundRobinDistribution</b> enum value (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setBatchingEnabled</b>(const bool &amp;batchingEnabled) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setBatchingMaxAllowedSizeInBytes</b>(const unsigned long &amp;batchingMaxAllowedSizeInBytes) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setBatchingMaxMessages</b>(const unsigned int &amp;batchingMaxMessages) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setBatchingMaxPublishDelayMs</b>(const unsigned long &amp;batchingMaxPublishDelayMs) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setBlockIfQueueFull</b>(bool) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setCompressionType</b>(CompressionType compressionType) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setHashingScheme</b>(const HashingScheme &amp;scheme) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setInitialSequenceId</b>(int64_t initialSequenceId) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setMaxPendingMessages</b>(int maxPendingMessages) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html#a158f3061d38b91b3c9ccf81545278a61">setMaxPendingMessagesAcrossPartitions</a>(int maxPendingMessagesAcrossPartitions)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setMessageRouter</b>(const MessageRoutingPolicyPtr &amp;router) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setPartitionsRoutingMode</b>(const PartitionsRoutingMode &amp;mode) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setProducerName</b>(const std::string &amp;producerName) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setSendTimeout</b>(int sendTimeoutMs) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>UseSinglePartition</b> enum value (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~ProducerConfiguration</b>() (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>isEncryptionEnabled</b>() const  (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>JavaStringHash</b> enum value (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Murmur3_32Hash</b> enum value (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const ProducerConfiguration &amp;) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>PartitionsRoutingMode</b> enum name (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ProducerConfiguration</b>() (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>ProducerConfiguration</b>(const ProducerConfiguration &amp;) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PulsarWrapper</b> (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>RoundRobinDistribution</b> enum value (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setBatchingEnabled</b>(const bool &amp;batchingEnabled) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setBatchingMaxAllowedSizeInBytes</b>(const unsigned long &amp;batchingMaxAllowedSizeInBytes) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setBatchingMaxMessages</b>(const unsigned int &amp;batchingMaxMessages) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setBatchingMaxPublishDelayMs</b>(const unsigned long &amp;batchingMaxPublishDelayMs) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setBlockIfQueueFull</b>(bool) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setCompressionType</b>(CompressionType compressionType) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setCryptoFailureAction</b>(ProducerCryptoFailureAction action) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setCryptoKeyReader</b>(CryptoKeyReaderPtr cryptoKeyReader) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setHashingScheme</b>(const HashingScheme &amp;scheme) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setInitialSequenceId</b>(int64_t initialSequenceId) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setMaxPendingMessages</b>(int maxPendingMessages) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html#a158f3061d38b91b3c9ccf81545278a61">setMaxPendingMessagesAcrossPartitions</a>(int maxPendingMessagesAcrossPartitions)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setMessageRouter</b>(const MessageRoutingPolicyPtr &amp;router) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setPartitionsRoutingMode</b>(const PartitionsRoutingMode &amp;mode) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setProducerName</b>(const std::string &amp;producerName) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setSendTimeout</b>(int sendTimeoutMs) (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>UseSinglePartition</b> enum value (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~ProducerConfiguration</b>() (defined in <a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/content/api/cpp/classpulsar_1_1_producer_configuration.html b/content/api/cpp/classpulsar_1_1_producer_configuration.html
index b8632ae..11c26e5 100644
--- a/content/api/cpp/classpulsar_1_1_producer_configuration.html
+++ b/content/api/cpp/classpulsar_1_1_producer_configuration.html
@@ -203,6 +203,27 @@ const unsigned long &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>
 <tr class="memitem:ada39d27bc25023391b5db195655a1d6b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada39d27bc25023391b5db195655a1d6b"></a>
 const unsigned long &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getBatchingMaxPublishDelayMs</b> () const </td></tr>
 <tr class="separator:ada39d27bc25023391b5db195655a1d6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c929a4bf830c40d0763bb320a5830d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9c929a4bf830c40d0763bb320a5830d7"></a>
+const CryptoKeyReaderPtr&#160;</td><td class="memItemRight" valign="bottom"><b>getCryptoKeyReader</b> () const </td></tr>
+<tr class="separator:a9c929a4bf830c40d0763bb320a5830d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea9e5f80540eef4e8ce4c61ffd9a4e91"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea9e5f80540eef4e8ce4c61ffd9a4e91"></a>
+<a class="el" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setCryptoKeyReader</b> (CryptoKeyReaderPtr cryptoKeyReader)</td></tr>
+<tr class="separator:aea9e5f80540eef4e8ce4c61ffd9a4e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45eb06a8e2b4989910a3b14d7604370c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45eb06a8e2b4989910a3b14d7604370c"></a>
+ProducerCryptoFailureAction&#160;</td><td class="memItemRight" valign="bottom"><b>getCryptoFailureAction</b> () const </td></tr>
+<tr class="separator:a45eb06a8e2b4989910a3b14d7604370c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba3cf7628c250b54e55bfbb89fa0cc4a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba3cf7628c250b54e55bfbb89fa0cc4a"></a>
+<a class="el" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setCryptoFailureAction</b> (ProducerCryptoFailureAction action)</td></tr>
+<tr class="separator:aba3cf7628c250b54e55bfbb89fa0cc4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc7d3f5bfb423e9b29e2d580bcdb91be"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afc7d3f5bfb423e9b29e2d580bcdb91be"></a>
+std::set&lt; std::string &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getEncryptionKeys</b> ()</td></tr>
+<tr class="separator:afc7d3f5bfb423e9b29e2d580bcdb91be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a552eb084a8c8a4e12b90c7cb247f7763"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a552eb084a8c8a4e12b90c7cb247f7763"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>isEncryptionEnabled</b> () const </td></tr>
+<tr class="separator:a552eb084a8c8a4e12b90c7cb247f7763"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae696a84743d6b95795bf17d68981ec51"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae696a84743d6b95795bf17d68981ec51"></a>
+<a class="el" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>addEncryptionKey</b> (std::string key)</td></tr>
+<tr class="separator:ae696a84743d6b95795bf17d68981ec51"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
 Friends</h2></td></tr>
diff --git a/content/api/cpp/files.html b/content/api/cpp/files.html
index 2ec2601..c8a5968 100644
--- a/content/api/cpp/files.html
+++ b/content/api/cpp/files.html
@@ -97,18 +97,22 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <tr id="row_0_0_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_compression_type_8h_source.html"><span class="icondoc"></span></a><b>CompressionType.h</b></td><td class="desc"></td></tr>
 <tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_consumer_8h_source.html"><span class="icondoc"></span></a><b>Consumer.h</b></td><td class="desc"></td></tr>
 <tr id="row_0_0_7_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_consumer_configuration_8h_source.html"><span class="icondoc"></span></a><b>ConsumerConfiguration.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_consumer_type_8h_source.html"><span class="icondoc"></span></a><b>ConsumerType.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_deprecated_exception_8h_source.html"><span class="icondoc"></span></a><b>DeprecatedException.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_8h_source.html"><span class="icondoc"></span></a><b>Message.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_11_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_builder_8h_source.html"><span class="icondoc"></span></a><b>MessageBuilder.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_12_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_id_8h_source.html"><span class="icondoc"></span></a><b>MessageId.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_13_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_routing_policy_8h_source.html"><span class="icondoc"></span></a><b>MessageRoutingPolicy.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_14_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_producer_8h_source.html"><span class="icondoc"></span></a><b>Producer.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_15_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_producer_configuration_8h_source.html"><span class="icondoc"></span></a><b>ProducerConfiguration.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_16_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_reader_8h_source.html"><span class="icondoc"></span></a><b>Reader.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_17_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_reader_configuration_8h_source.html"><span class="icondoc"></span></a><b>ReaderConfiguration.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_18_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_result_8h_source.html"><span class="icondoc"></span></a><b>Result.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_19_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_topic_metadata_8h_source.html"><span class="icondoc"></span></a><b>TopicMetadata.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_consumer_crypto_failure_action_8h_source.html"><span class="icondoc"></span></a><b>ConsumerCryptoFailureAction.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_consumer_type_8h_source.html"><span class="icondoc"></span></a><b>ConsumerType.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_crypto_key_reader_8h_source.html"><span class="icondoc"></span></a><b>CryptoKeyReader.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_11_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_deprecated_exception_8h_source.html"><span class="icondoc"></span></a><b>DeprecatedException.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_12_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_encryption_key_info_8h_source.html"><span class="icondoc"></span></a><b>EncryptionKeyInfo.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_13_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_8h_source.html"><span class="icondoc"></span></a><b>Message.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_14_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_builder_8h_source.html"><span class="icondoc"></span></a><b>MessageBuilder.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_15_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_id_8h_source.html"><span class="icondoc"></span></a><b>MessageId.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_16_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_routing_policy_8h_source.html"><span class="icondoc"></span></a><b>MessageRoutingPolicy.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_17_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_producer_8h_source.html"><span class="icondoc"></span></a><b>Producer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_18_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_producer_configuration_8h_source.html"><span class="icondoc"></span></a><b>ProducerConfiguration.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_19_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_producer_crypto_failure_action_8h_source.html"><span class="icondoc"></span></a><b>ProducerCryptoFailureAction.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_20_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_reader_8h_source.html"><span class="icondoc"></span></a><b>Reader.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_21_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_reader_configuration_8h_source.html"><span class="icondoc"></span></a><b>ReaderConfiguration.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_22_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_result_8h_source.html"><span class="icondoc"></span></a><b>Result.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_23_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_topic_metadata_8h_source.html"><span class="icondoc"></span></a><b>TopicMetadata.h</b></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
diff --git a/content/api/cpp/hierarchy.html b/content/api/cpp/hierarchy.html
index 6b5817a..ff33b42 100644
--- a/content/api/cpp/hierarchy.html
+++ b/content/api/cpp/hierarchy.html
@@ -98,18 +98,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <tr id="row_5_"><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="classpulsar_1_1_client_configuration.html" target="_self">pulsar::ClientConfiguration</a></td><td class="desc"></td></tr>
 <tr id="row_6_" 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="classpulsar_1_1_consumer.html" target="_self">pulsar::Consumer</a></td><td class="desc"></td></tr>
 <tr id="row_7_"><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="classpulsar_1_1_consumer_configuration.html" target="_self">pulsar::ConsumerConfiguration</a></td><td class="desc"></td></tr>
-<tr id="row_8_" 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="classpulsar_1_1_message.html" target="_self">pulsar::Message</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><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="classpulsar_1_1_message_builder.html" target="_self">pulsar::MessageBuilder</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_10_" class="arrow" onclick="toggleFolder('10_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_id.html" target="_self">pulsar::MessageId</a></td><td class="desc"></td></tr>
-<tr id="row_10_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_batch_message_id.html" target="_self">pulsar::BatchMessageId</a></td><td class="desc"></td></tr>
-<tr id="row_11_" 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="classpulsar_1_1_message_routing_policy.html" target="_self">pulsar::MessageRoutingPolicy</a></td><td class="desc"></td></tr>
-<tr id="row_12_"><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="classpulsar_1_1_producer.html" target="_self">pulsar::Producer</a></td><td class="desc"></td></tr>
-<tr id="row_13_" 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="classpulsar_1_1_producer_configuration.html" target="_self">pulsar::ProducerConfiguration</a></td><td class="desc"></td></tr>
-<tr id="row_14_"><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="classpulsar_1_1_reader.html" target="_self">pulsar::Reader</a></td><td class="desc"></td></tr>
-<tr id="row_15_" 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="classpulsar_1_1_reader_configuration.html" target="_self">pulsar::ReaderConfiguration</a></td><td class="desc"></td></tr>
-<tr id="row_16_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_16_" class="arrow" onclick="toggleFolder('16_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>runtime_error</b></td><td class="desc"></td></tr>
-<tr id="row_16_0_" 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_deprecated_exception.html" target="_self">pulsar::DeprecatedException</a></td><td class="desc"></td></tr>
-<tr id="row_17_"><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="classpulsar_1_1_topic_metadata.html" target="_self">pulsar::TopicMetadata</a></td><td class="desc"></td></tr>
+<tr id="row_8_" 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="classpulsar_1_1_crypto_key_reader.html" target="_self">pulsar::CryptoKeyReader</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><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="classpulsar_1_1_encryption_key_info.html" target="_self">pulsar::EncryptionKeyInfo</a></td><td class="desc"></td></tr>
+<tr id="row_10_" 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="classpulsar_1_1_message.html" target="_self">pulsar::Message</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><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="classpulsar_1_1_message_builder.html" target="_self">pulsar::MessageBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_12_" class="arrow" onclick="toggleFolder('12_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_id.html" target="_self">pulsar::MessageId</a></td><td class="desc"></td></tr>
+<tr id="row_12_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_batch_message_id.html" target="_self">pulsar::BatchMessageId</a></td><td class="desc"></td></tr>
+<tr id="row_13_" 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="classpulsar_1_1_message_routing_policy.html" target="_self">pulsar::MessageRoutingPolicy</a></td><td class="desc"></td></tr>
+<tr id="row_14_"><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="classpulsar_1_1_producer.html" target="_self">pulsar::Producer</a></td><td class="desc"></td></tr>
+<tr id="row_15_" 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="classpulsar_1_1_producer_configuration.html" target="_self">pulsar::ProducerConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_16_"><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="classpulsar_1_1_reader.html" target="_self">pulsar::Reader</a></td><td class="desc"></td></tr>
+<tr id="row_17_" 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="classpulsar_1_1_reader_configuration.html" target="_self">pulsar::ReaderConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_18_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_18_" class="arrow" onclick="toggleFolder('18_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>runtime_error</b></td><td class="desc"></td></tr>
+<tr id="row_18_0_" 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_deprecated_exception.html" target="_self">pulsar::DeprecatedException</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><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="classpulsar_1_1_topic_metadata.html" target="_self">pulsar::TopicMetadata</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
diff --git a/content/api/cpp/namespacemembers.html b/content/api/cpp/namespacemembers.html
index 24e7425..5c83158 100644
--- a/content/api/cpp/namespacemembers.html
+++ b/content/api/cpp/namespacemembers.html
@@ -162,6 +162,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>ResultConsumerNotInitialized
 : <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba48d27a5310cda91d13a23324a08533e9">pulsar</a>
 </li>
+<li>ResultCryptoError
+: <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbac131b27876dfd64d8e6b3355578a8f77">pulsar</a>
+</li>
 <li>ResultErrorGettingAuthenticationData
 : <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba8014344f94ba9ad55337f01767e0e30c">pulsar</a>
 </li>
@@ -216,6 +219,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>ResultTopicNotFound
 : <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbad1921e33dd6a45431a0209b70588cf48">pulsar</a>
 </li>
+<li>ResultTopicTerminated
+: <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba62df217dec3d3f75c7099d1464c92750">pulsar</a>
+</li>
 <li>ResultUnknownError
 : <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba213e39d5c84b8794dd21ab4f60ff4b60">pulsar</a>
 </li>
diff --git a/content/api/cpp/namespacemembers_eval.html b/content/api/cpp/namespacemembers_eval.html
index ecb6c06..6a090f4 100644
--- a/content/api/cpp/namespacemembers_eval.html
+++ b/content/api/cpp/namespacemembers_eval.html
@@ -142,6 +142,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>ResultConsumerNotInitialized
 : <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba48d27a5310cda91d13a23324a08533e9">pulsar</a>
 </li>
+<li>ResultCryptoError
+: <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbac131b27876dfd64d8e6b3355578a8f77">pulsar</a>
+</li>
 <li>ResultErrorGettingAuthenticationData
 : <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba8014344f94ba9ad55337f01767e0e30c">pulsar</a>
 </li>
@@ -196,6 +199,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>ResultTopicNotFound
 : <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbad1921e33dd6a45431a0209b70588cf48">pulsar</a>
 </li>
+<li>ResultTopicTerminated
+: <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba62df217dec3d3f75c7099d1464c92750">pulsar</a>
+</li>
 <li>ResultUnknownError
 : <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba213e39d5c84b8794dd21ab4f60ff4b60">pulsar</a>
 </li>
diff --git a/content/api/cpp/namespacepulsar.html b/content/api/cpp/namespacepulsar.html
index d33d731..1a2cf68 100644
--- a/content/api/cpp/namespacepulsar.html
+++ b/content/api/cpp/namespacepulsar.html
@@ -112,8 +112,12 @@ Classes</h2></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message.html">Message</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a></td></tr>
@@ -167,6 +171,12 @@ typedef boost::function&lt; void(<a class="el" href="namespacepulsar.html#ae8531
 typedef boost::function&lt; void(<a class="el" href="classpulsar_1_1_consumer.html">Consumer</a> consumer, const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;msg)&gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepulsar.html#a64293027dc2f4e9f82b76148328fa191">MessageListener</a></td></tr>
 <tr class="memdesc:a64293027dc2f4e9f82b76148328fa191"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback definition for MessageListener. <br /></td></tr>
 <tr class="separator:a64293027dc2f4e9f82b76148328fa191"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaaca5829c765dc6e1295a51dd8b3cd19"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaaca5829c765dc6e1295a51dd8b3cd19"></a>
+typedef boost::shared_ptr&lt; <a class="el" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CryptoKeyReaderPtr</b></td></tr>
+<tr class="separator:aaaca5829c765dc6e1295a51dd8b3cd19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abec36d8aea08d253f5e0039a574f98ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abec36d8aea08d253f5e0039a574f98ee"></a>
+typedef boost::shared_ptr&lt; EncryptionKeyInfoImpl &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>EncryptionKeyInfoImplPtr</b></td></tr>
+<tr class="separator:abec36d8aea08d253f5e0039a574f98ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a83140f6753ca73111752f7f445f4eaa8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a83140f6753ca73111752f7f445f4eaa8"></a>
 typedef boost::shared_ptr&lt; <a class="el" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>MessageRoutingPolicyPtr</b></td></tr>
 <tr class="separator:a83140f6753ca73111752f7f445f4eaa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -185,11 +195,20 @@ Enumerations</h2></td></tr>
 <b>CompressionZLib</b> = 2
  }</td></tr>
 <tr class="separator:ad6f0aaa7c0223ff1f3ff5a164f739ac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a828ec5e466f93f7b4061cc25d7e8ac35"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a828ec5e466f93f7b4061cc25d7e8ac35"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>ConsumerCryptoFailureAction</b> { <b>FAIL</b>, 
+<b>DISCARD</b>, 
+<b>CONSUME</b>
+ }</td></tr>
+<tr class="separator:a828ec5e466f93f7b4061cc25d7e8ac35"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac3e442abe2558a2b257fc7344af61d40"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40">ConsumerType</a> { <a class="el" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40a915cd237340dcd1d212f8d398f3d91ac">ConsumerExclusive</a>, 
 <a class="el" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40ac55370821e835a03c2da742ab27e1705">ConsumerShared</a>, 
 <a class="el" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40aadffd5f0d50b1da36685230cd3f910a1">ConsumerFailover</a>
  }</td></tr>
 <tr class="separator:ac3e442abe2558a2b257fc7344af61d40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21fcd03916492b7597c0b59a352a0491"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a21fcd03916492b7597c0b59a352a0491"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>ProducerCryptoFailureAction</b> { <b>FAIL</b>, 
+<b>SEND</b>
+ }</td></tr>
+<tr class="separator:a21fcd03916492b7597c0b59a352a0491"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae85314d6b9e8afd831cf8c66705f2dbb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> { <br />
 &#160;&#160;<b>ResultOk</b>, 
 <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba213e39d5c84b8794dd21ab4f60ff4b60">ResultUnknownError</a>, 
@@ -229,7 +248,10 @@ Enumerations</h2></td></tr>
 &#160;&#160;<a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbad1921e33dd6a45431a0209b70588cf48">ResultTopicNotFound</a>, 
 <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba061d6c40bdf75ca172ffdb862aad7c51">ResultSubscriptionNotFound</a>, 
 <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbac74e9fb1b2c25caf17ac3446303b7a71">ResultConsumerNotFound</a>, 
-<a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba888578f8569121606cfcfa6044c594c3">ResultUnsupportedVersionError</a>
+<a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba888578f8569121606cfcfa6044c594c3">ResultUnsupportedVersionError</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba62df217dec3d3f75c7099d1464c92750">ResultTopicTerminated</a>, 
+<a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbac131b27876dfd64d8e6b3355578a8f77">ResultCryptoError</a>
 <br />
  }</td></tr>
 <tr class="separator:ae85314d6b9e8afd831cf8c66705f2dbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -368,7 +390,13 @@ const char *&#160;</td><td class="memItemRight" valign="bottom"><b>strResult</b>
 </td></tr>
 <tr><td class="fieldname"><a class="anchor" id="ae85314d6b9e8afd831cf8c66705f2dbba888578f8569121606cfcfa6044c594c3"></a>ResultUnsupportedVersionError&#160;</td><td class="fielddoc">
 <p><a class="el" href="classpulsar_1_1_consumer.html">Consumer</a> not found. </p>
-<p>Error when an older client/version doesn't support a required feature </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ae85314d6b9e8afd831cf8c66705f2dbba62df217dec3d3f75c7099d1464c92750"></a>ResultTopicTerminated&#160;</td><td class="fielddoc">
+<p>Error when an older client/version doesn't support a required feature. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ae85314d6b9e8afd831cf8c66705f2dbbac131b27876dfd64d8e6b3355578a8f77"></a>ResultCryptoError&#160;</td><td class="fielddoc">
+<p>Topic was already terminated. </p>
+<p>Error when crypto operation fails </p>
 </td></tr>
 </table>
 
diff --git a/content/api/cpp/search/all_2.js b/content/api/cpp/search/all_2.js
index c24f115..21bcd4c 100644
--- a/content/api/cpp/search/all_2.js
+++ b/content/api/cpp/search/all_2.js
@@ -14,5 +14,6 @@ var searchData=
   ['consumertype',['ConsumerType',['../namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40',1,'pulsar']]],
   ['create',['create',['../classpulsar_1_1_message_builder.html#a331944373a3ed3fe7daed7730e9254c0',1,'pulsar::MessageBuilder']]],
   ['createproducer',['createProducer',['../classpulsar_1_1_client.html#a96f49cc0ce27bfe68d75224991f0ba52',1,'pulsar::Client::createProducer(const std::string &amp;topic, Producer &amp;producer)'],['../classpulsar_1_1_client.html#aae7658dee80ad23b418cfb7e12f5df05',1,'pulsar::Client::createProducer(const std::string &amp;topic, const ProducerConfiguration &amp;conf, Producer &amp;producer)']]],
-  ['createreader',['createReader',['../classpulsar_1_1_client.html#ad2f6404e06200714e1fe82419b7c963a',1,'pulsar::Client']]]
+  ['createreader',['createReader',['../classpulsar_1_1_client.html#ad2f6404e06200714e1fe82419b7c963a',1,'pulsar::Client']]],
+  ['cryptokeyreader',['CryptoKeyReader',['../classpulsar_1_1_crypto_key_reader.html',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/all_4.js b/content/api/cpp/search/all_4.js
index 971fbad..203c2f0 100644
--- a/content/api/cpp/search/all_4.js
+++ b/content/api/cpp/search/all_4.js
@@ -1,4 +1,5 @@
 var searchData=
 [
-  ['earliest',['earliest',['../classpulsar_1_1_message_id.html#afc55a20e713be1c415bdc940224b831a',1,'pulsar::MessageId']]]
+  ['earliest',['earliest',['../classpulsar_1_1_message_id.html#afc55a20e713be1c415bdc940224b831a',1,'pulsar::MessageId']]],
+  ['encryptionkeyinfo',['EncryptionKeyInfo',['../classpulsar_1_1_encryption_key_info.html',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/all_b.js b/content/api/cpp/search/all_b.js
index cd5675f..538dbf9 100644
--- a/content/api/cpp/search/all_b.js
+++ b/content/api/cpp/search/all_b.js
@@ -19,6 +19,7 @@ var searchData=
   ['resultconsumerbusy',['ResultConsumerBusy',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba5cbe2e189b60f91ff0f2e82b973db31b',1,'pulsar']]],
   ['resultconsumernotfound',['ResultConsumerNotFound',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbac74e9fb1b2c25caf17ac3446303b7a71',1,'pulsar']]],
   ['resultconsumernotinitialized',['ResultConsumerNotInitialized',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba48d27a5310cda91d13a23324a08533e9',1,'pulsar']]],
+  ['resultcryptoerror',['ResultCryptoError',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbac131b27876dfd64d8e6b3355578a8f77',1,'pulsar']]],
   ['resulterrorgettingauthenticationdata',['ResultErrorGettingAuthenticationData',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba8014344f94ba9ad55337f01767e0e30c',1,'pulsar']]],
   ['resultinvalidconfiguration',['ResultInvalidConfiguration',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbad3d7545107897e19819066fe42e81a06',1,'pulsar']]],
   ['resultinvalidmessage',['ResultInvalidMessage',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba875234396481a34fb7f02d3ecd1936f0',1,'pulsar']]],
@@ -37,6 +38,7 @@ var searchData=
   ['resulttimeout',['ResultTimeout',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbaeb1858ddf791b7288ab1cb066d70cfb4',1,'pulsar']]],
   ['resulttoomanylookuprequestexception',['ResultTooManyLookupRequestException',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba024fa5ba9fac2cb81fd4e8f6853a81a5',1,'pulsar']]],
   ['resulttopicnotfound',['ResultTopicNotFound',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbad1921e33dd6a45431a0209b70588cf48',1,'pulsar']]],
+  ['resulttopicterminated',['ResultTopicTerminated',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba62df217dec3d3f75c7099d1464c92750',1,'pulsar']]],
   ['resultunknownerror',['ResultUnknownError',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba213e39d5c84b8794dd21ab4f60ff4b60',1,'pulsar']]],
   ['resultunsupportedversionerror',['ResultUnsupportedVersionError',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba888578f8569121606cfcfa6044c594c3',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/classes_2.js b/content/api/cpp/search/classes_2.js
index f7d0150..5b89f10 100644
--- a/content/api/cpp/search/classes_2.js
+++ b/content/api/cpp/search/classes_2.js
@@ -3,5 +3,6 @@ var searchData=
   ['client',['Client',['../classpulsar_1_1_client.html',1,'pulsar']]],
   ['clientconfiguration',['ClientConfiguration',['../classpulsar_1_1_client_configuration.html',1,'pulsar']]],
   ['consumer',['Consumer',['../classpulsar_1_1_consumer.html',1,'pulsar']]],
-  ['consumerconfiguration',['ConsumerConfiguration',['../classpulsar_1_1_consumer_configuration.html',1,'pulsar']]]
+  ['consumerconfiguration',['ConsumerConfiguration',['../classpulsar_1_1_consumer_configuration.html',1,'pulsar']]],
+  ['cryptokeyreader',['CryptoKeyReader',['../classpulsar_1_1_crypto_key_reader.html',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/classes_4.js b/content/api/cpp/search/classes_4.js
index a2bb3a5..2628df9 100644
--- a/content/api/cpp/search/classes_4.js
+++ b/content/api/cpp/search/classes_4.js
@@ -1,7 +1,4 @@
 var searchData=
 [
-  ['message',['Message',['../classpulsar_1_1_message.html',1,'pulsar']]],
-  ['messagebuilder',['MessageBuilder',['../classpulsar_1_1_message_builder.html',1,'pulsar']]],
-  ['messageid',['MessageId',['../classpulsar_1_1_message_id.html',1,'pulsar']]],
-  ['messageroutingpolicy',['MessageRoutingPolicy',['../classpulsar_1_1_message_routing_policy.html',1,'pulsar']]]
+  ['encryptionkeyinfo',['EncryptionKeyInfo',['../classpulsar_1_1_encryption_key_info.html',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/classes_5.js b/content/api/cpp/search/classes_5.js
index 8593cf4..a2bb3a5 100644
--- a/content/api/cpp/search/classes_5.js
+++ b/content/api/cpp/search/classes_5.js
@@ -1,5 +1,7 @@
 var searchData=
 [
-  ['producer',['Producer',['../classpulsar_1_1_producer.html',1,'pulsar']]],
-  ['producerconfiguration',['ProducerConfiguration',['../classpulsar_1_1_producer_configuration.html',1,'pulsar']]]
+  ['message',['Message',['../classpulsar_1_1_message.html',1,'pulsar']]],
+  ['messagebuilder',['MessageBuilder',['../classpulsar_1_1_message_builder.html',1,'pulsar']]],
+  ['messageid',['MessageId',['../classpulsar_1_1_message_id.html',1,'pulsar']]],
+  ['messageroutingpolicy',['MessageRoutingPolicy',['../classpulsar_1_1_message_routing_policy.html',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/classes_6.js b/content/api/cpp/search/classes_6.js
index 9e58fde..8593cf4 100644
--- a/content/api/cpp/search/classes_6.js
+++ b/content/api/cpp/search/classes_6.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['reader',['Reader',['../classpulsar_1_1_reader.html',1,'pulsar']]],
-  ['readerconfiguration',['ReaderConfiguration',['../classpulsar_1_1_reader_configuration.html',1,'pulsar']]]
+  ['producer',['Producer',['../classpulsar_1_1_producer.html',1,'pulsar']]],
+  ['producerconfiguration',['ProducerConfiguration',['../classpulsar_1_1_producer_configuration.html',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/classes_7.js b/content/api/cpp/search/classes_7.js
index 4c7c376..9e58fde 100644
--- a/content/api/cpp/search/classes_7.js
+++ b/content/api/cpp/search/classes_7.js
@@ -1,4 +1,5 @@
 var searchData=
 [
-  ['topicmetadata',['TopicMetadata',['../classpulsar_1_1_topic_metadata.html',1,'pulsar']]]
+  ['reader',['Reader',['../classpulsar_1_1_reader.html',1,'pulsar']]],
+  ['readerconfiguration',['ReaderConfiguration',['../classpulsar_1_1_reader_configuration.html',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/classes_8.html b/content/api/cpp/search/classes_8.html
new file mode 100644
index 0000000..369fe52
--- /dev/null
+++ b/content/api/cpp/search/classes_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/content/api/cpp/search/classes_7.js b/content/api/cpp/search/classes_8.js
similarity index 100%
copy from content/api/cpp/search/classes_7.js
copy to content/api/cpp/search/classes_8.js
diff --git a/content/api/cpp/search/enumvalues_1.js b/content/api/cpp/search/enumvalues_1.js
index 3e230b6..99dfe6e 100644
--- a/content/api/cpp/search/enumvalues_1.js
+++ b/content/api/cpp/search/enumvalues_1.js
@@ -10,6 +10,7 @@ var searchData=
   ['resultconsumerbusy',['ResultConsumerBusy',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba5cbe2e189b60f91ff0f2e82b973db31b',1,'pulsar']]],
   ['resultconsumernotfound',['ResultConsumerNotFound',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbac74e9fb1b2c25caf17ac3446303b7a71',1,'pulsar']]],
   ['resultconsumernotinitialized',['ResultConsumerNotInitialized',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba48d27a5310cda91d13a23324a08533e9',1,'pulsar']]],
+  ['resultcryptoerror',['ResultCryptoError',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbac131b27876dfd64d8e6b3355578a8f77',1,'pulsar']]],
   ['resulterrorgettingauthenticationdata',['ResultErrorGettingAuthenticationData',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba8014344f94ba9ad55337f01767e0e30c',1,'pulsar']]],
   ['resultinvalidconfiguration',['ResultInvalidConfiguration',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbad3d7545107897e19819066fe42e81a06',1,'pulsar']]],
   ['resultinvalidmessage',['ResultInvalidMessage',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba875234396481a34fb7f02d3ecd1936f0',1,'pulsar']]],
@@ -28,6 +29,7 @@ var searchData=
   ['resulttimeout',['ResultTimeout',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbaeb1858ddf791b7288ab1cb066d70cfb4',1,'pulsar']]],
   ['resulttoomanylookuprequestexception',['ResultTooManyLookupRequestException',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba024fa5ba9fac2cb81fd4e8f6853a81a5',1,'pulsar']]],
   ['resulttopicnotfound',['ResultTopicNotFound',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbbad1921e33dd6a45431a0209b70588cf48',1,'pulsar']]],
+  ['resulttopicterminated',['ResultTopicTerminated',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba62df217dec3d3f75c7099d1464c92750',1,'pulsar']]],
   ['resultunknownerror',['ResultUnknownError',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba213e39d5c84b8794dd21ab4f60ff4b60',1,'pulsar']]],
   ['resultunsupportedversionerror',['ResultUnsupportedVersionError',['../namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba888578f8569121606cfcfa6044c594c3',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/searchdata.js b/content/api/cpp/search/searchdata.js
index f59702a..aab787d 100644
--- a/content/api/cpp/search/searchdata.js
+++ b/content/api/cpp/search/searchdata.js
@@ -1,7 +1,7 @@
 var indexSectionsWithContent =
 {
   0: "abcdeghilmprstu",
-  1: "abcdmprt",
+  1: "abcdemprt",
   2: "p",
   3: "abcdeghilprsu",
   4: "mr",
diff --git a/content/docs/latest/deployment/instance/index.html b/content/docs/latest/deployment/instance/index.html
index 9119cd0..2955c94 100644
--- a/content/docs/latest/deployment/instance/index.html
+++ b/content/docs/latest/deployment/instance/index.html
@@ -2202,7 +2202,7 @@ designed to use multiple devices:</p>
 that can contain many topic. Common practice is to create a namespace for each
 different use case from a single tenant.</p>
 
-<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-admin namespaces create <span class="nb">test</span>/us-west/ns1
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-admin namespaces create test-prop/us-west/ns1
 </code></pre></div></div>
 
 <h5 id="testing-producer-and-consumer">Testing producer and consumer</h5>
@@ -2236,24 +2236,24 @@ created the first time a producer or a consumer tries to use them.</p>
 
 -->
 <section class="topic">
-  persistent://<span class="property">test</span>/<span class="cluster">us-west</span>/<span class="namespace">ns1</span>/<span class="t">my-topic</span>
+  persistent://<span class="property">test-prop</span>/<span class="cluster">us-west</span>/<span class="namespace">ns1</span>/<span class="t">my-topic</span>
 </section>
 
 <p>Start a consumer that will create a subscription on the topic and will wait
 for messages:</p>
 
-<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-perf consume persistent://test/us-west/ns1/my-topic
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-perf consume persistent://test-prop/us-west/ns1/my-topic
 </code></pre></div></div>
 
 <p>Start a producer that publishes messages at a fixed rate and report stats every
 10 seconds:</p>
 
-<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-perf produce persistent://test/us-west/ns1/my-topic
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-perf produce persistent://test-prop/us-west/ns1/my-topic
 </code></pre></div></div>
 
 <p>To report the topic stats:</p>
 
-<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-admin persistent stats persistent://test/us-west/ns1/my-topic
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-admin persistent stats persistent://test-prop/us-west/ns1/my-topic
 </code></pre></div></div>
 
       </section>
diff --git a/content/ja/deployment/InstanceSetup/index.html b/content/ja/deployment/InstanceSetup/index.html
index ae07a0f..c76fd57 100644
--- a/content/ja/deployment/InstanceSetup/index.html
+++ b/content/ja/deployment/InstanceSetup/index.html
@@ -1646,13 +1646,13 @@
   <span class="nt">--admin-roles</span> test-admin-role
 </code></pre></div></div>
 
-<p>これによって、<code class="highlighter-rouge">test-admin-role</code>ロールを持つユーザが<code class="highlighter-rouge">us-west</code>クラスタのみを使用できる<code class="highlighter-rouge">test</code>プロパティの設定を管理できるようになります。これ以降は、テナントはリソースを自分自身で管理できます。</p>
+<p>これによって、<code class="highlighter-rouge">test-admin-role</code>ロールを持つユーザが<code class="highlighter-rouge">us-west</code>クラスタのみを使用できる<code class="highlighter-rouge">test-prop</code>プロパティの設定を管理できるようになります。これ以降は、テナントはリソースを自分自身で管理できます。</p>
 
 <p>テナントが作成されたら、そのプロパティ内のトピックの<span class="popover-term" tabindex="0" title="ネームスペースとは?" data-placement="top" data-content="関連トピックのグループ化メカニズムです。" data-toggle="popover" data-trigger="focus">ネームスペース</span>を作成する必要があります。</p>
 
 <p>最初のステップはネームスペースを作成する事です。ネームスペースは多くのトピックを含む事のできる管理単位です。一般的な方法は、単一のテナントからユースケースごとにネームスペースを作成するというものです。</p>
 
-<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-admin namespaces create <span class="nb">test</span>/us-west/ns1
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-admin namespaces create test-prop/us-west/ns1
 </code></pre></div></div>
 
 <h5 id="producerとconsumerのテスト">ProducerとConsumerのテスト</h5>
@@ -1684,22 +1684,22 @@
 
 -->
 <section class="topic">
-  persistent://<span class="property">test</span>/<span class="cluster">us-west</span>/<span class="namespace">ns1</span>/<span class="t">my-topic</span>
+  persistent://<span class="property">test-prop</span>/<span class="cluster">us-west</span>/<span class="namespace">ns1</span>/<span class="t">my-topic</span>
 </section>
 
 <p>トピックのサブスクリプションを作成し、メッセージを待ち受けるConsumerを開始します:</p>
 
-<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-perf consume persistent://test/us-west/ns1/my-topic
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-perf consume persistent://test-prop/us-west/ns1/my-topic
 </code></pre></div></div>
 
 <p>一定のレートでメッセージを送信し、10秒ごとに統計情報をレポートするProducerを開始します:</p>
 
-<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-perf produce persistent://test/us-west/ns1/my-topic
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-perf produce persistent://test-prop/us-west/ns1/my-topic
 </code></pre></div></div>
 
 <p>トピックの統計情報を閲覧するには次のコマンドを実行します:</p>
 
-<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-admin persistent stats persistent://test/us-west/ns1/my-topic
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/pulsar-admin persistent stats persistent://test-prop/us-west/ns1/my-topic
 </code></pre></div></div>
 
       </section>

-- 
To stop receiving notification emails like this one, please contact
mmerli@apache.org.