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/06/09 08:28:03 UTC
[incubator-pulsar] branch asf-site updated: Updated site at
revision 2bf387d
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 20d62cb Updated site at revision 2bf387d
20d62cb is described below
commit 20d62cb6bb17c1d1867f7a305da4c8ec85620405
Author: jenkins <bu...@apache.org>
AuthorDate: Sat Jun 9 08:27:53 2018 +0000
Updated site at revision 2bf387d
---
content/api/admin/index-all.html | 7 +
.../org/apache/pulsar/client/admin/Functions.html | 48 +-
.../pulsar/common/policies/data/Policies.html | 43 +-
content/api/cpp/annotated.html | 46 +-
content/api/cpp/authentication_8h_source.html | 2 +-
content/api/cpp/classes.html | 31 +-
...ml => classpulsar_1_1_auth_athenz-members.html} | 22 +-
...ctory.html => classpulsar_1_1_auth_athenz.html} | 76 +-
content/api/cpp/classpulsar_1_1_auth_athenz.png | Bin 0 -> 584 bytes
.../cpp/classpulsar_1_1_auth_factory-members.html | 2 +-
content/api/cpp/classpulsar_1_1_auth_factory.html | 40 +-
....html => classpulsar_1_1_auth_tls-members.html} | 21 +-
..._factory.html => classpulsar_1_1_auth_tls.html} | 73 +-
content/api/cpp/classpulsar_1_1_auth_tls.png | Bin 0 -> 556 bytes
.../api/cpp/classpulsar_1_1_authentication.html | 10 +
content/api/cpp/classpulsar_1_1_authentication.png | Bin 0 -> 837 bytes
.../api/cpp/classpulsar_1_1_consumer-members.html | 2 +
content/api/cpp/classpulsar_1_1_consumer.html | 70 +
.../api/cpp/client__configuration_8h_source.html | 2 +-
content/api/cpp/consumer_8h_source.html | 2 +-
content/api/cpp/files.html | 49 +-
content/api/cpp/functions.html | 9 +-
content/api/cpp/functions_func.html | 9 +-
content/api/cpp/hierarchy.html | 4 +-
content/api/cpp/index.html | 2 +-
content/api/cpp/message_8h_source.html | 2 +-
content/api/cpp/namespacepulsar.html | 4 +
content/api/cpp/search/all_0.js | 4 +-
content/api/cpp/search/all_2.js | 2 +-
content/api/cpp/search/all_c.js | 2 +
content/api/cpp/search/classes_0.js | 4 +-
content/api/cpp/search/functions_2.js | 2 +-
content/api/cpp/search/functions_b.js | 2 +
...n_8h_source.html => string__map_8h_source.html} | 6 +-
content/api/python/functions/context.m.html | 1652 ++++++++++++++++++++
content/api/python/functions/function.m.html | 1139 ++++++++++++++
content/api/python/functions/index.html | 1075 +++++++++++++
content/api/python/functions/serde.m.html | 1375 ++++++++++++++++
content/api/python/index.html | 40 +-
.../docs/latest/reference/Configuration/index.html | 56 +
content/docs/latest/reference/RestApi/index.html | 4 +-
content/download/index.html | 20 +-
content/ja/reference/Configuration/index.html | 56 +
content/ja/reference/RestApi/index.html | 4 +-
44 files changed, 5807 insertions(+), 212 deletions(-)
diff --git a/content/api/admin/index-all.html b/content/api/admin/index-all.html
index 3261654..4890083 100644
--- a/content/api/admin/index-all.html
+++ b/content/api/admin/index-all.html
@@ -290,6 +290,8 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/PulsarAdmin.html#clusters--">clusters()</a></span> - Method in class org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/PulsarAdmin.html" title="class in org.apache.pulsar.client.admin">PulsarAdmin</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/common/policies/data/Policies.html#compaction_threshold">compaction_threshold</a></span> - Variable in class org.apache.pulsar.common.policies.data.<a href="org/apache/pulsar/common/policies/data/Policies.html" title="class in org.apache.pulsar.common.policies.data">Policies</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Topics.html#compactionStatus-java.lang.String-">compactionStatus(String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Topics.html" title="interface in org.apache.pulsar.client.admin">Topics</a></dt>
<dd>
<div class="block">Check the status of an ongoing compaction for a topic.</div>
@@ -332,6 +334,11 @@
<dd>
<div class="block">Create a new function.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Functions.html#createFunctionWithUrl-FunctionDetails-java.lang.String-">createFunctionWithUrl(FunctionDetails, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Functions.html" title="interface in org.apache.pulsar.client.admin">Functions</a></dt>
+<dd>
+<div class="block">
+ Create a new function by providing url from which fun-pkg can be downloaded.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Namespaces.html#createNamespace-java.lang.String-int-">createNamespace(String, int)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Namespaces.html" title="interface in org.apache.pulsar.client.admin">Namespaces</a></dt>
<dd>
<div class="block">Create a new namespace.</div>
diff --git a/content/api/admin/org/apache/pulsar/client/admin/Functions.html b/content/api/admin/org/apache/pulsar/client/admin/Functions.html
index a40ef7a..4a75f0d 100644
--- a/content/api/admin/org/apache/pulsar/client/admin/Functions.html
+++ b/content/api/admin/org/apache/pulsar/client/admin/Functions.html
@@ -17,7 +17,7 @@
catch(err) {
}
//-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -128,20 +128,28 @@ var activeTableTab = "activeTableTab";
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#createFunctionWithUrl-FunctionDetails-java.lang.String-">createFunctionWithUrl</a></span>(FunctionDetails functionDetails,
+ String pkgUrl)</code>
+<div class="block">
+ Create a new function by providing url from which fun-pkg can be downloaded.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#deleteFunction-java.lang.String-java.lang.String-java.lang.String-">deleteFunction</a></span>(String tenant,
String namespace,
String function)</code>
<div class="block">Delete an existing function</div>
</td>
</tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#downloadFunction-java.lang.String-java.lang.String-">downloadFunction</a></span>(String destinationFile,
String path)</code>
<div class="block">Download Function Code.</div>
</td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code>FunctionDetails</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#getFunction-java.lang.String-java.lang.String-java.lang.String-">getFunction</a></span>(String tenant,
String namespace,
@@ -149,14 +157,14 @@ var activeTableTab = "activeTableTab";
<div class="block">Get the configuration for the specified function.</div>
</td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code>List<String></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#getFunctions-java.lang.String-java.lang.String-">getFunctions</a></span>(String tenant,
String namespace)</code>
<div class="block">Get the list of functions.</div>
</td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code>FunctionStatusList</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#getFunctionStatus-java.lang.String-java.lang.String-java.lang.String-">getFunctionStatus</a></span>(String tenant,
String namespace,
@@ -164,7 +172,7 @@ var activeTableTab = "activeTableTab";
<div class="block">Gets the current status of a function.</div>
</td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
<td class="colFirst"><code>String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#triggerFunction-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">triggerFunction</a></span>(String tenant,
String namespace,
@@ -175,14 +183,14 @@ var activeTableTab = "activeTableTab";
<div class="block">Triggers the function by writing to the input topic.</div>
</td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#updateFunction-FunctionDetails-java.lang.String-">updateFunction</a></span>(FunctionDetails functionDetails,
String fileName)</code>
<div class="block">Update the configuration for a function.</div>
</td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#uploadFunction-java.lang.String-java.lang.String-">uploadFunction</a></span>(String sourceFile,
String path)</code>
@@ -278,6 +286,30 @@ var activeTableTab = "activeTableTab";
</dl>
</li>
</ul>
+<a name="createFunctionWithUrl-FunctionDetails-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFunctionWithUrl</h4>
+<pre>void createFunctionWithUrl(FunctionDetails functionDetails,
+ String pkgUrl)
+ throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block"><pre>
+ Create a new function by providing url from which fun-pkg can be downloaded. supported url: http/file
+ eg:
+ File: file:/dir/fileName.jar
+ Http: http://www.repo.com/fileName.jar
+ </pre></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>functionDetails</code> - the function configuration object</dd>
+<dd><code>pkgUrl</code> - url from which pkg can be downloaded</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code></dd>
+</dl>
+</li>
+</ul>
<a name="updateFunction-FunctionDetails-java.lang.String-">
<!-- -->
</a>
diff --git a/content/api/admin/org/apache/pulsar/common/policies/data/Policies.html b/content/api/admin/org/apache/pulsar/common/policies/data/Policies.html
index 63d3c07..a8f29eb 100644
--- a/content/api/admin/org/apache/pulsar/common/policies/data/Policies.html
+++ b/content/api/admin/org/apache/pulsar/common/policies/data/Policies.html
@@ -148,62 +148,66 @@ extends Object</pre>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#clusterDispatchRate">clusterDispatchRate</a></span></code> </td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#compaction_threshold">compaction_threshold</a></span></code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>Boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#deduplicationEnabled">deduplicationEnabled</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#deleted">deleted</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#encryption_required">encryption_required</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>static String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#FIRST_BOUNDARY">FIRST_BOUNDARY</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>static String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#LAST_BOUNDARY">LAST_BOUNDARY</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>Map<String,Integer></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#latency_stats_sample_rate">latency_stats_sample_rate</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#max_consumers_per_subscription">max_consumers_per_subscription</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#max_consumers_per_topic">max_consumers_per_topic</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#max_producers_per_topic">max_producers_per_topic</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#message_ttl_in_seconds">message_ttl_in_seconds</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/pulsar/common/policies/data/PersistencePolicies.html" title="class in org.apache.pulsar.common.policies.data">PersistencePolicies</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#persistence">persistence</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>Set<String></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#replication_clusters">replication_clusters</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/pulsar/common/policies/data/RetentionPolicies.html" title="class in org.apache.pulsar.common.policies.data">RetentionPolicies</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#retention_policies">retention_policies</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/pulsar/common/policies/data/SubscriptionAuthMode.html" title="enum in org.apache.pulsar.common.policies.data">SubscriptionAuthMode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#subscription_auth_mode">subscription_auth_mode</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>Map<String,<a href="../../../../../../org/apache/pulsar/common/policies/data/DispatchRate.html" title="class in org.apache.pulsar.common.policies.data">DispatchRate</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/common/policies/data/Policies.html#subscriptionDispatchRate">subscriptionDispatchRate</a></span></code> </td>
</tr>
@@ -455,12 +459,21 @@ extends Object</pre>
<a name="max_consumers_per_subscription">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>max_consumers_per_subscription</h4>
<pre>public int max_consumers_per_subscription</pre>
</li>
</ul>
+<a name="compaction_threshold">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>compaction_threshold</h4>
+<pre>public long compaction_threshold</pre>
+</li>
+</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
diff --git a/content/api/cpp/annotated.html b/content/api/cpp/annotated.html
index 9674cff..2e468cf 100644
--- a/content/api/cpp/annotated.html
+++ b/content/api/cpp/annotated.html
@@ -91,28 +91,30 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">▼</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacepulsar.html" target="_self">pulsar</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_authentication.html" target="_self">Authentication</a></td><td class="desc"></td></tr>
-<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_authentication_data_provider.html" target="_self">AuthenticationDataProvider</a></td><td class="desc"></td></tr>
-<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_auth_factory.html" target="_self">AuthFactory</a></td><td class="desc"></td></tr>
-<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_broker_consumer_stats.html" target="_self">BrokerConsumerStats</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_client.html" target="_self">Client</a></td><td class="desc"></td></tr>
-<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_client_configuration.html" target="_self">ClientConfiguration</a></td><td class="desc"></td></tr>
-<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_consumer.html" target="_self">Consumer</a></td><td class="desc"></td></tr>
-<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_consumer_configuration.html" target="_self">ConsumerConfiguration</a></td><td class="desc"></td></tr>
-<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_crypto_key_reader.html" target="_self">CryptoKeyReader</a></td><td class="desc"></td></tr>
-<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_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;"> </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_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_logger.html" target="_self">Logger</a></td><td class="desc"></td></tr>
-<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_logger_factory.html" target="_self">LoggerFactory</a></td><td class="desc"></td></tr>
-<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message.html" target="_self">Message</a></td><td class="desc"></td></tr>
-<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_builder.html" target="_self">MessageBuilder</a></td><td class="desc"></td></tr>
-<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_id.html" target="_self">MessageId</a></td><td class="desc"></td></tr>
-<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_routing_policy.html" target="_self">MessageRoutingPolicy</a></td><td class="desc"></td></tr>
-<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer.html" target="_self">Producer</a></td><td class="desc"></td></tr>
-<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer_configuration.html" target="_self">ProducerConfiguration</a></td><td class="desc"></td></tr>
-<tr id="row_0_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader.html" target="_self">Reader</a></td><td class="desc"></td></tr>
-<tr id="row_0_20_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader_configuration.html" target="_self">ReaderConfiguration</a></td><td class="desc"></td></tr>
-<tr id="row_0_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_topic_metadata.html" target="_self">TopicMetadata</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_auth_athenz.html" target="_self">AuthAthenz</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_authentication.html" target="_self">Authentication</a></td><td class="desc"></td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_authentication_data_provider.html" target="_self">AuthenticationDataProvider</a></td><td class="desc"></td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_auth_factory.html" target="_self">AuthFactory</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_auth_tls.html" target="_self">AuthTls</a></td><td class="desc"></td></tr>
+<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_broker_consumer_stats.html" target="_self">BrokerConsumerStats</a></td><td class="desc"></td></tr>
+<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_client.html" target="_self">Client</a></td><td class="desc"></td></tr>
+<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_client_configuration.html" target="_self">ClientConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_consumer.html" target="_self">Consumer</a></td><td class="desc"></td></tr>
+<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_consumer_configuration.html" target="_self">ConsumerConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_crypto_key_reader.html" target="_self">CryptoKeyReader</a></td><td class="desc"></td></tr>
+<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_deprecated_exception.html" target="_self">DeprecatedException</a></td><td class="desc"></td></tr>
+<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_encryption_key_info.html" target="_self">EncryptionKeyInfo</a></td><td class="desc"></td></tr>
+<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_logger.html" target="_self">Logger</a></td><td class="desc"></td></tr>
+<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_logger_factory.html" target="_self">LoggerFactory</a></td><td class="desc"></td></tr>
+<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message.html" target="_self">Message</a></td><td class="desc"></td></tr>
+<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_builder.html" target="_self">MessageBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_id.html" target="_self">MessageId</a></td><td class="desc"></td></tr>
+<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_routing_policy.html" target="_self">MessageRoutingPolicy</a></td><td class="desc"></td></tr>
+<tr id="row_0_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer.html" target="_self">Producer</a></td><td class="desc"></td></tr>
+<tr id="row_0_20_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer_configuration.html" target="_self">ProducerConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader.html" target="_self">Reader</a></td><td class="desc"></td></tr>
+<tr id="row_0_22_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader_configuration.html" target="_self">ReaderConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_23_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_topic_metadata.html" target="_self">TopicMetadata</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/content/api/cpp/authentication_8h_source.html b/content/api/cpp/authentication_8h_source.html
index 53715de..aa71ec5 100644
--- a/content/api/cpp/authentication_8h_source.html
+++ b/content/api/cpp/authentication_8h_source.html
@@ -89,7 +89,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">authentication.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00023">< [...]
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00023">< [...]
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
diff --git a/content/api/cpp/classes.html b/content/api/cpp/classes.html
index 02b34ab..4824401 100644
--- a/content/api/cpp/classes.html
+++ b/content/api/cpp/classes.html
@@ -91,26 +91,25 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="qindex"><a class="qindex" href="#letter_A">A</a> | <a class="qindex" href="#letter_B">B</a> | <a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_E">E</a> | <a class="qindex" href="#letter_L">L</a> | <a class="qindex" href="#letter_M">M</a> | <a class="qindex" href="#letter_P">P</a> | <a class="qindex" href="#letter_R">R</a> |& [...]
<table class="classindex">
<tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  A  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  L  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  T  </div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  C  </div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  E  </div></td></tr></table>
+</td><td valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_message_id.html">MessageId</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  T  </div></td></tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_consumer.html">Consumer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  P  </div></td></tr></table>
-</td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication.html">Authentication</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_logger.html">Logger</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&# [...]
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication_data_provider.html">AuthenticationDataProvider</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a> (<a class="el" href="names [...]
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  D  </div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  M  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_client.html">Client</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   [...]
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication.html">Authentication</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> &# [...]
+</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  P  </div></td></tr></table>
+</td><td valign="top"><a class="el" href="classpulsar_1_1_topic_metadata.html">TopicMetadata</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication_data_provider.html">AuthenticationDataProvider</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_consumer.html">Consumer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_logger.html">Logger</a> (<a class="el" href="namespacepulsar.html">pulsar</a>) & [...]
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_tls.html">AuthTls</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   [...]
<tr><td rowspan="2" valign="bottom"><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  B  </div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  D  </div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  M  </div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  R  </div></td></tr></table>
</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_message.html">Message</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  E  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_reader.html">Reader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td></td></tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  C  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="classpulsar_1_1_message_id.html">MessageId</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td></td><td></td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_client.html">Client</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td></td><td></td><td></td><td></td></tr>
+<tr><td></td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td><td valign="top"><a class="el" href="classpulsar_1_1_message.html">Message</a> (<a class="el" href="namespacepulsar.html">pul [...]
<tr><td></td><td></td><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_A">A</a> | <a class="qindex" href="#letter_B">B</a> | <a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_E">E</a> | <a class="qindex" href="#letter_L">L</a> | <a class="qindex" href="#letter_M">M</a> | <a class="qindex" href="#letter_P">P</a> | <a class="qindex" href="#letter_R">R</a> |& [...]
diff --git a/content/api/cpp/classpulsar_1_1_auth_factory-members.html b/content/api/cpp/classpulsar_1_1_auth_athenz-members.html
similarity index 57%
copy from content/api/cpp/classpulsar_1_1_auth_factory-members.html
copy to content/api/cpp/classpulsar_1_1_auth_athenz-members.html
index fb721f3..d37ac45 100644
--- a/content/api/cpp/classpulsar_1_1_auth_factory-members.html
+++ b/content/api/cpp/classpulsar_1_1_auth_athenz-members.html
@@ -84,24 +84,26 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a></li> </ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">pulsar::AuthFactory Member List</div> </div>
+<div class="title">pulsar::AuthAthenz Member List</div> </div>
</div><!--header-->
<div class="contents">
-<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>, including all inherited members.</p>
+<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>, including all inherited members.</p>
<table class="directory">
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>create</b>(const std::string &dynamicLibPath) (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>create</b>(const std::string &dynamicLibPath, const std::string &authParamsString) (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>create</b>(const std::string &dynamicLibPath, ParamMap &params) (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>Disabled</b>() (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>isShutdownHookRegistered_</b> (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>loadedLibrariesHandles_</b> (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>release_handles</b>() (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AuthAthenz</b>(AuthenticationDataPtr &) (defined in <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>authData_</b> (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>create</b>(ParamMap &params) (defined in <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>create</b>(const std::string &authParamsString) (defined in <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>getAuthData</b>(AuthenticationDataPtr &authDataAthenz) const (defined in <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getAuthMethodName</b>() const (defined in <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>~AuthAthenz</b>() (defined in <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/content/api/cpp/classpulsar_1_1_auth_factory.html b/content/api/cpp/classpulsar_1_1_auth_athenz.html
similarity index 60%
copy from content/api/cpp/classpulsar_1_1_auth_factory.html
copy to content/api/cpp/classpulsar_1_1_auth_athenz.html
index 4954a5e..522a81a 100644
--- a/content/api/cpp/classpulsar_1_1_auth_factory.html
+++ b/content/api/cpp/classpulsar_1_1_auth_athenz.html
@@ -4,7 +4,7 @@
<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::AuthFactory Class Reference</title>
+<title>pulsar-client-cpp: pulsar::AuthAthenz Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -84,51 +84,61 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a></li> </ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
+<a href="#pub-methods">Public Member Functions</a> |
<a href="#pub-static-methods">Static Public Member Functions</a> |
-<a href="#pro-static-methods">Static Protected Member Functions</a> |
-<a href="#pro-static-attribs">Static Protected Attributes</a> |
-<a href="classpulsar_1_1_auth_factory-members.html">List of all members</a> </div>
+<a href="classpulsar_1_1_auth_athenz-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">pulsar::AuthFactory Class Reference</div> </div>
+<div class="title">pulsar::AuthAthenz Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><code>#include <<a class="el" href="_authentication_8h_source.html">Authentication.h</a>></code></p>
+<div class="dynheader">
+Inheritance diagram for pulsar::AuthAthenz:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classpulsar_1_1_auth_athenz.png" usemap="#pulsar::AuthAthenz_map" alt=""/>
+ <map id="pulsar::AuthAthenz_map" name="pulsar::AuthAthenz_map">
+<area href="classpulsar_1_1_authentication.html" alt="pulsar::Authentication" shape="rect" coords="0,0,133,24"/>
+</map>
+ </div></div>
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ab4ed3eadbc72cabc8ff942e0ebdc053d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4ed3eadbc72cabc8ff942e0ebdc053d"></a>
+ </td><td class="memItemRight" valign="bottom"><b>AuthAthenz</b> (AuthenticationDataPtr &)</td></tr>
+<tr class="separator:ab4ed3eadbc72cabc8ff942e0ebdc053d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a26aa4be56fd20b15823ce94250762ba6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a26aa4be56fd20b15823ce94250762ba6"></a>
+const std::string </td><td class="memItemRight" valign="bottom"><b>getAuthMethodName</b> () const </td></tr>
+<tr class="separator:a26aa4be56fd20b15823ce94250762ba6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8a55e4f046f70abf3d5647ef0ffdd733"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a55e4f046f70abf3d5647ef0ffdd733"></a>
+<a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> </td><td class="memItemRight" valign="bottom"><b>getAuthData</b> (AuthenticationDataPtr &authDataAthenz) const </td></tr>
+<tr class="separator:a8a55e4f046f70abf3d5647ef0ffdd733"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
-<tr class="memitem:a430f22348c1a089dd8589d87c6accf41"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a430f22348c1a089dd8589d87c6accf41"></a>
-static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>Disabled</b> ()</td></tr>
-<tr class="separator:a430f22348c1a089dd8589d87c6accf41"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa99900a3f8ed1ee55900431cc784f624"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa99900a3f8ed1ee55900431cc784f624"></a>
-static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>create</b> (const std::string &dynamicLibPath)</td></tr>
-<tr class="separator:aa99900a3f8ed1ee55900431cc784f624"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0584dbbca158125a96e55506933d4d34"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0584dbbca158125a96e55506933d4d34"></a>
-static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>create</b> (const std::string &dynamicLibPath, const std::string &authParamsString)</td></tr>
-<tr class="separator:a0584dbbca158125a96e55506933d4d34"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a133e43b5cd7a7031bd5419f1f2d23625"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a133e43b5cd7a7031bd5419f1f2d23625"></a>
-static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>create</b> (const std::string &dynamicLibPath, ParamMap &params)</td></tr>
-<tr class="separator:a133e43b5cd7a7031bd5419f1f2d23625"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
-Static Protected Member Functions</h2></td></tr>
-<tr class="memitem:a313049ed4f9c7e587b7529b8b667e569"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a313049ed4f9c7e587b7529b8b667e569"></a>
-static void </td><td class="memItemRight" valign="bottom"><b>release_handles</b> ()</td></tr>
-<tr class="separator:a313049ed4f9c7e587b7529b8b667e569"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:acde69fc41668a27d12d558023aaed0d9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acde69fc41668a27d12d558023aaed0d9"></a>
+static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>create</b> (ParamMap &params)</td></tr>
+<tr class="separator:acde69fc41668a27d12d558023aaed0d9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:afd40a525e1d8d61fc97880c2c8a958fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd40a525e1d8d61fc97880c2c8a958fe"></a>
+static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>create</b> (const std::string &authParamsString)</td></tr>
+<tr class="separator:afd40a525e1d8d61fc97880c2c8a958fe"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
-Static Protected Attributes</h2></td></tr>
-<tr class="memitem:a6a3436cb14de4c90a3b02509410753fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a3436cb14de4c90a3b02509410753fd"></a>
-static bool </td><td class="memItemRight" valign="bottom"><b>isShutdownHookRegistered_</b></td></tr>
-<tr class="separator:a6a3436cb14de4c90a3b02509410753fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abf8d4232884ae351e216935f1d229ee6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf8d4232884ae351e216935f1d229ee6"></a>
-static std::vector< void * > </td><td class="memItemRight" valign="bottom"><b>loadedLibrariesHandles_</b></td></tr>
-<tr class="separator:abf8d4232884ae351e216935f1d229ee6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abac33d5c492826fb8a4bea05512c9f7c"></a>
+AuthenticationDataPtr </td><td class="memItemRight" valign="bottom"><b>authData_</b></td></tr>
+<tr class="separator:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2"> </td></tr>
</table>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Athenz implementation of Pulsar client authentication </p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>include/pulsar/<a class="el" href="_authentication_8h_source.html">Authentication.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/content/api/cpp/classpulsar_1_1_auth_athenz.png b/content/api/cpp/classpulsar_1_1_auth_athenz.png
new file mode 100644
index 0000000..d27f4a7
Binary files /dev/null and b/content/api/cpp/classpulsar_1_1_auth_athenz.png differ
diff --git a/content/api/cpp/classpulsar_1_1_auth_factory-members.html b/content/api/cpp/classpulsar_1_1_auth_factory-members.html
index fb721f3..a68810a 100644
--- a/content/api/cpp/classpulsar_1_1_auth_factory-members.html
+++ b/content/api/cpp/classpulsar_1_1_auth_factory-members.html
@@ -95,7 +95,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>, including all inherited members.</p>
<table class="directory">
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>create</b>(const std::string &dynamicLibPath) (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html#aa99900a3f8ed1ee55900431cc784f624">create</a>(const std::string &dynamicLibPath)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>create</b>(const std::string &dynamicLibPath, const std::string &authParamsString) (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>create</b>(const std::string &dynamicLibPath, ParamMap &params) (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>Disabled</b>() (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
diff --git a/content/api/cpp/classpulsar_1_1_auth_factory.html b/content/api/cpp/classpulsar_1_1_auth_factory.html
index 4954a5e..f823e13 100644
--- a/content/api/cpp/classpulsar_1_1_auth_factory.html
+++ b/content/api/cpp/classpulsar_1_1_auth_factory.html
@@ -97,14 +97,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">pulsar::AuthFactory Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><code>#include <<a class="el" href="_authentication_8h_source.html">Authentication.h</a>></code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a430f22348c1a089dd8589d87c6accf41"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a430f22348c1a089dd8589d87c6accf41"></a>
static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>Disabled</b> ()</td></tr>
<tr class="separator:a430f22348c1a089dd8589d87c6accf41"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa99900a3f8ed1ee55900431cc784f624"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa99900a3f8ed1ee55900431cc784f624"></a>
-static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>create</b> (const std::string &dynamicLibPath)</td></tr>
+<tr class="memitem:aa99900a3f8ed1ee55900431cc784f624"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_factory.html#aa99900a3f8ed1ee55900431cc784f624">create</a> (const std::string &dynamicLibPath)</td></tr>
<tr class="separator:aa99900a3f8ed1ee55900431cc784f624"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a0584dbbca158125a96e55506933d4d34"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0584dbbca158125a96e55506933d4d34"></a>
static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>create</b> (const std::string &dynamicLibPath, const std::string &authParamsString)</td></tr>
@@ -128,6 +129,41 @@ static bool </td><td class="memItemRight" valign="bottom"><b>isShutdownHook
static std::vector< void * > </td><td class="memItemRight" valign="bottom"><b>loadedLibrariesHandles_</b></td></tr>
<tr class="separator:abf8d4232884ae351e216935f1d229ee6"><td class="memSeparator" colspan="2"> </td></tr>
</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a> is used to create instances of <a class="el" href="classpulsar_1_1_authentication.html">Authentication</a> class when configuring a <a class="el" href="classpulsar_1_1_client.html">Client</a> instance. It loads the authentication from an external plugin.</p>
+<p>To use authentication methods that are internally supported, you should use <code>AuthTls::create("my-cert.pem", "my-private.key")</code> or similar. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aa99900a3f8ed1ee55900431cc784f624"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthFactory::create </td>
+ <td>(</td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>dynamicLibPath</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">dynamicLibPath</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/pulsar/<a class="el" href="_authentication_8h_source.html">Authentication.h</a></li>
</ul>
diff --git a/content/api/cpp/classpulsar_1_1_auth_factory-members.html b/content/api/cpp/classpulsar_1_1_auth_tls-members.html
similarity index 60%
copy from content/api/cpp/classpulsar_1_1_auth_factory-members.html
copy to content/api/cpp/classpulsar_1_1_auth_tls-members.html
index fb721f3..9c097af 100644
--- a/content/api/cpp/classpulsar_1_1_auth_factory-members.html
+++ b/content/api/cpp/classpulsar_1_1_auth_tls-members.html
@@ -84,24 +84,25 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a></li> </ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_tls.html">AuthTls</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">pulsar::AuthFactory Member List</div> </div>
+<div class="title">pulsar::AuthTls Member List</div> </div>
</div><!--header-->
<div class="contents">
-<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>, including all inherited members.</p>
+<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>, including all inherited members.</p>
<table class="directory">
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>create</b>(const std::string &dynamicLibPath) (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>create</b>(const std::string &dynamicLibPath, const std::string &authParamsString) (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>create</b>(const std::string &dynamicLibPath, ParamMap &params) (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>Disabled</b>() (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>isShutdownHookRegistered_</b> (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>loadedLibrariesHandles_</b> (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>release_handles</b>() (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>authData_</b> (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AuthTls</b>(AuthenticationDataPtr &) (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>create</b>(const std::string &certificatePath, const std::string &privateKeyPath) (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getAuthData</b>(AuthenticationDataPtr &authDataTls) const (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>getAuthMethodName</b>() const (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>~AuthTls</b>() (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/content/api/cpp/classpulsar_1_1_auth_factory.html b/content/api/cpp/classpulsar_1_1_auth_tls.html
similarity index 61%
copy from content/api/cpp/classpulsar_1_1_auth_factory.html
copy to content/api/cpp/classpulsar_1_1_auth_tls.html
index 4954a5e..69b4fd3 100644
--- a/content/api/cpp/classpulsar_1_1_auth_factory.html
+++ b/content/api/cpp/classpulsar_1_1_auth_tls.html
@@ -4,7 +4,7 @@
<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::AuthFactory Class Reference</title>
+<title>pulsar-client-cpp: pulsar::AuthTls Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -84,51 +84,58 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a></li> </ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_tls.html">AuthTls</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
+<a href="#pub-methods">Public Member Functions</a> |
<a href="#pub-static-methods">Static Public Member Functions</a> |
-<a href="#pro-static-methods">Static Protected Member Functions</a> |
-<a href="#pro-static-attribs">Static Protected Attributes</a> |
-<a href="classpulsar_1_1_auth_factory-members.html">List of all members</a> </div>
+<a href="classpulsar_1_1_auth_tls-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">pulsar::AuthFactory Class Reference</div> </div>
+<div class="title">pulsar::AuthTls Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><code>#include <<a class="el" href="_authentication_8h_source.html">Authentication.h</a>></code></p>
+<div class="dynheader">
+Inheritance diagram for pulsar::AuthTls:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classpulsar_1_1_auth_tls.png" usemap="#pulsar::AuthTls_map" alt=""/>
+ <map id="pulsar::AuthTls_map" name="pulsar::AuthTls_map">
+<area href="classpulsar_1_1_authentication.html" alt="pulsar::Authentication" shape="rect" coords="0,0,133,24"/>
+</map>
+ </div></div>
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a288702412c2ed9dc55e293902d476767"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a288702412c2ed9dc55e293902d476767"></a>
+ </td><td class="memItemRight" valign="bottom"><b>AuthTls</b> (AuthenticationDataPtr &)</td></tr>
+<tr class="separator:a288702412c2ed9dc55e293902d476767"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4cb16de5740f8153696b7b82e681dac9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4cb16de5740f8153696b7b82e681dac9"></a>
+const std::string </td><td class="memItemRight" valign="bottom"><b>getAuthMethodName</b> () const </td></tr>
+<tr class="separator:a4cb16de5740f8153696b7b82e681dac9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad5be6123439f540fcbffe9598adc239b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5be6123439f540fcbffe9598adc239b"></a>
+<a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> </td><td class="memItemRight" valign="bottom"><b>getAuthData</b> (AuthenticationDataPtr &authDataTls) const </td></tr>
+<tr class="separator:ad5be6123439f540fcbffe9598adc239b"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
-<tr class="memitem:a430f22348c1a089dd8589d87c6accf41"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a430f22348c1a089dd8589d87c6accf41"></a>
-static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>Disabled</b> ()</td></tr>
-<tr class="separator:a430f22348c1a089dd8589d87c6accf41"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa99900a3f8ed1ee55900431cc784f624"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa99900a3f8ed1ee55900431cc784f624"></a>
-static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>create</b> (const std::string &dynamicLibPath)</td></tr>
-<tr class="separator:aa99900a3f8ed1ee55900431cc784f624"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0584dbbca158125a96e55506933d4d34"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0584dbbca158125a96e55506933d4d34"></a>
-static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>create</b> (const std::string &dynamicLibPath, const std::string &authParamsString)</td></tr>
-<tr class="separator:a0584dbbca158125a96e55506933d4d34"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a133e43b5cd7a7031bd5419f1f2d23625"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a133e43b5cd7a7031bd5419f1f2d23625"></a>
-static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>create</b> (const std::string &dynamicLibPath, ParamMap &params)</td></tr>
-<tr class="separator:a133e43b5cd7a7031bd5419f1f2d23625"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
-Static Protected Member Functions</h2></td></tr>
-<tr class="memitem:a313049ed4f9c7e587b7529b8b667e569"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a313049ed4f9c7e587b7529b8b667e569"></a>
-static void </td><td class="memItemRight" valign="bottom"><b>release_handles</b> ()</td></tr>
-<tr class="separator:a313049ed4f9c7e587b7529b8b667e569"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac32274cb7d7095cfcd35fcebcf277d5b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac32274cb7d7095cfcd35fcebcf277d5b"></a>
+static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>create</b> (const std::string &certificatePath, const std::string &privateKeyPath)</td></tr>
+<tr class="separator:ac32274cb7d7095cfcd35fcebcf277d5b"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
-Static Protected Attributes</h2></td></tr>
-<tr class="memitem:a6a3436cb14de4c90a3b02509410753fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a3436cb14de4c90a3b02509410753fd"></a>
-static bool </td><td class="memItemRight" valign="bottom"><b>isShutdownHookRegistered_</b></td></tr>
-<tr class="separator:a6a3436cb14de4c90a3b02509410753fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abf8d4232884ae351e216935f1d229ee6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf8d4232884ae351e216935f1d229ee6"></a>
-static std::vector< void * > </td><td class="memItemRight" valign="bottom"><b>loadedLibrariesHandles_</b></td></tr>
-<tr class="separator:abf8d4232884ae351e216935f1d229ee6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abac33d5c492826fb8a4bea05512c9f7c"></a>
+AuthenticationDataPtr </td><td class="memItemRight" valign="bottom"><b>authData_</b></td></tr>
+<tr class="separator:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2"> </td></tr>
</table>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>TLS implementation of Pulsar client authentication </p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>include/pulsar/<a class="el" href="_authentication_8h_source.html">Authentication.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/content/api/cpp/classpulsar_1_1_auth_tls.png b/content/api/cpp/classpulsar_1_1_auth_tls.png
new file mode 100644
index 0000000..936a732
Binary files /dev/null and b/content/api/cpp/classpulsar_1_1_auth_tls.png differ
diff --git a/content/api/cpp/classpulsar_1_1_authentication.html b/content/api/cpp/classpulsar_1_1_authentication.html
index 71d0f75..f108000 100644
--- a/content/api/cpp/classpulsar_1_1_authentication.html
+++ b/content/api/cpp/classpulsar_1_1_authentication.html
@@ -97,6 +97,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">pulsar::Authentication Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
+<div class="dynheader">
+Inheritance diagram for pulsar::Authentication:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classpulsar_1_1_authentication.png" usemap="#pulsar::Authentication_map" alt=""/>
+ <map id="pulsar::Authentication_map" name="pulsar::Authentication_map">
+<area href="classpulsar_1_1_auth_athenz.html" alt="pulsar::AuthAthenz" shape="rect" coords="0,56,133,80"/>
+<area href="classpulsar_1_1_auth_tls.html" alt="pulsar::AuthTls" shape="rect" coords="143,56,276,80"/>
+</map>
+ </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
diff --git a/content/api/cpp/classpulsar_1_1_authentication.png b/content/api/cpp/classpulsar_1_1_authentication.png
new file mode 100644
index 0000000..bf77d9d
Binary files /dev/null and b/content/api/cpp/classpulsar_1_1_authentication.png differ
diff --git a/content/api/cpp/classpulsar_1_1_consumer-members.html b/content/api/cpp/classpulsar_1_1_consumer-members.html
index 936189a..6ed3115 100644
--- a/content/api/cpp/classpulsar_1_1_consumer-members.html
+++ b/content/api/cpp/classpulsar_1_1_consumer-members.html
@@ -121,6 +121,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr><td class="entry"><a class="el" href="classpulsar_1_1_consumer.html#ace9475b70f37c91df5b442f41058370e">receive</a>(Message &msg, int timeoutMs)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer.html">pulsar::Consumer</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_consumer.html#a3d60ee12b0e9766d60c3a8e08a61287a">redeliverUnacknowledgedMessages</a>()</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer.html">pulsar::Consumer</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>resumeMessageListener</b>() (defined in <a class="el" href="classpulsar_1_1_consumer.html">pulsar::Consumer</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer.html">pulsar::Consumer</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_consumer.html#a949eda4ed6de3ecc2e4f793cce1dc06c">seek</a>(const MessageId &msgId)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer.html">pulsar::Consumer</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_consumer.html#a52bb7deeca9c8376de61c88bb5db24e5">seekAsync</a>(const MessageId &msgId, ResultCallback callback)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer.html">pulsar::Consumer</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_consumer.html#a542ca0a9473a03ccf8bd8aeed24de490">unsubscribe</a>()</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer.html">pulsar::Consumer</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classpulsar_1_1_consumer.html#a8691920cae838418f33f13690a72771d">unsubscribeAsync</a>(ResultCallback callback)</td><td class="entry"><a class="el" href="classpulsar_1_1_consumer.html">pulsar::Consumer</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
diff --git a/content/api/cpp/classpulsar_1_1_consumer.html b/content/api/cpp/classpulsar_1_1_consumer.html
index 4f3c41d..fa12291 100644
--- a/content/api/cpp/classpulsar_1_1_consumer.html
+++ b/content/api/cpp/classpulsar_1_1_consumer.html
@@ -151,6 +151,10 @@ void </td><td class="memItemRight" valign="bottom"><b>closeAsync</b> (<a cl
<tr class="separator:a617639e11e05ecba3d013d831578d19d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a01e55f7906b6922fa069d84f5459af4b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_consumer.html#a01e55f7906b6922fa069d84f5459af4b">getBrokerConsumerStatsAsync</a> (BrokerConsumerStatsCallback callback)</td></tr>
<tr class="separator:a01e55f7906b6922fa069d84f5459af4b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a949eda4ed6de3ecc2e4f793cce1dc06c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_consumer.html#a949eda4ed6de3ecc2e4f793cce1dc06c">seek</a> (const <a class="el" href="classpulsar_1_1_message_id.html">MessageId</a> &msgId)</td></tr>
+<tr class="separator:a949eda4ed6de3ecc2e4f793cce1dc06c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a52bb7deeca9c8376de61c88bb5db24e5"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_consumer.html#a52bb7deeca9c8376de61c88bb5db24e5">seekAsync</a> (const <a class="el" href="classpulsar_1_1_message_id.html">MessageId</a> &msgId, <a class="el" href="namespacepulsar.html#a471fb397a128f0e2891d5979f2282e2d">ResultCallback</a> callback)</td></tr>
+<tr class="separator:a52bb7deeca9c8376de61c88bb5db24e5"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
@@ -478,6 +482,72 @@ ResultInvalidConfiguration if a message listener had been set in the configurati
</div>
</div>
+<a class="anchor" id="a949eda4ed6de3ecc2e4f793cce1dc06c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> pulsar::Consumer::seek </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classpulsar_1_1_message_id.html">MessageId</a> & </td>
+ <td class="paramname"><em>msgId</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Reset the subscription associated with this consumer to a specific message id. The message id can either be a specific message or represent the first or last messages in the topic.</p>
+<p>Note: this operation can only be done on non-partitioned topics. For these, one can rather perform the <a class="el" href="classpulsar_1_1_consumer.html#a949eda4ed6de3ecc2e4f793cce1dc06c">seek()</a> on the individual partitions.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">messageId</td><td>the message id where to reposition the subscription </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a52bb7deeca9c8376de61c88bb5db24e5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void pulsar::Consumer::seekAsync </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classpulsar_1_1_message_id.html">MessageId</a> & </td>
+ <td class="paramname"><em>msgId</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespacepulsar.html#a471fb397a128f0e2891d5979f2282e2d">ResultCallback</a> </td>
+ <td class="paramname"><em>callback</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Asynchronously reset the subscription associated with this consumer to a specific message id. The message id can either be a specific message or represent the first or last messages in the topic.</p>
+<p>Note: this operation can only be done on non-partitioned topics. For these, one can rather perform the <a class="el" href="classpulsar_1_1_consumer.html#a949eda4ed6de3ecc2e4f793cce1dc06c">seek()</a> on the individual partitions.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">messageId</td><td>the message id where to reposition the subscription </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
<a class="anchor" id="a542ca0a9473a03ccf8bd8aeed24de490"></a>
<div class="memitem">
<div class="memproto">
diff --git a/content/api/cpp/client__configuration_8h_source.html b/content/api/cpp/client__configuration_8h_source.html
index 2272ed8..9406e9e 100644
--- a/content/api/cpp/client__configuration_8h_source.html
+++ b/content/api/cpp/client__configuration_8h_source.html
@@ -89,7 +89,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">client_configuration.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00023">< [...]
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00023">< [...]
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
diff --git a/content/api/cpp/consumer_8h_source.html b/content/api/cpp/consumer_8h_source.html
index c6d5994..c9227b4 100644
--- a/content/api/cpp/consumer_8h_source.html
+++ b/content/api/cpp/consumer_8h_source.html
@@ -89,7 +89,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">consumer.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00022">< [...]
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00022">< [...]
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
diff --git a/content/api/cpp/files.html b/content/api/cpp/files.html
index 29a5e57..58f30f8 100644
--- a/content/api/cpp/files.html
+++ b/content/api/cpp/files.html
@@ -103,30 +103,31 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr id="row_0_0_0_10_"><td class="entry"><span style="width:64px;display:inline-block;"> </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_0_11_" class="even"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="reader__configuration_8h_source.html"><span class="icondoc"></span></a><b>reader_configuration.h</b></td><td class="desc"></td></tr>
<tr id="row_0_0_0_12_"><td class="entry"><span style="width:64px;display:inline-block;"> </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_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="_authentication_8h_source.html"><span class="icondoc"></span></a><b>Authentication.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_2_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="_broker_consumer_stats_8h_source.html"><span class="icondoc"></span></a><b>BrokerConsumerStats.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_3_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="_client_8h_source.html"><span class="icondoc"></span></a><b>Client.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_4_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="_client_configuration_8h_source.html"><span class="icondoc"></span></a><b>ClientConfiguration.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_5_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="_logger_8h_source.html"><span class="icondoc"></span></a><b>Logger.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_14_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_15_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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_16_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_17_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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_18_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_19_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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_20_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_21_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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_22_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_23_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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_24_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_0_13_" class="even"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="string__map_8h_source.html"><span class="icondoc"></span></a><b>string_map.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="_authentication_8h_source.html"><span class="icondoc"></span></a><b>Authentication.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="_broker_consumer_stats_8h_source.html"><span class="icondoc"></span></a><b>BrokerConsumerStats.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_3_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="_client_8h_source.html"><span class="icondoc"></span></a><b>Client.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="_client_configuration_8h_source.html"><span class="icondoc"></span></a><b>ClientConfiguration.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_5_"><td class="entry"><span style="width:48px;display:inline-block;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><a href="_logger_8h_source.html"><span class="icondoc"></span></a><b>Logger.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;"> </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_15_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_16_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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_17_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_18_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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_19_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_20_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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_21_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_22_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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_23_"><td class="entry"><span style="width:48px;display:inline-block;"> </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_24_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </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/functions.html b/content/api/cpp/functions.html
index f591cc7..e2750c7 100644
--- a/content/api/cpp/functions.html
+++ b/content/api/cpp/functions.html
@@ -147,7 +147,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
: <a class="el" href="classpulsar_1_1_consumer.html#afe59503d5d5309f38d4e246bd9f435b4">pulsar::Consumer</a>
</li>
<li>create()
-: <a class="el" href="classpulsar_1_1_message_builder.html#a331944373a3ed3fe7daed7730e9254c0">pulsar::MessageBuilder</a>
+: <a class="el" href="classpulsar_1_1_auth_factory.html#aa99900a3f8ed1ee55900431cc784f624">pulsar::AuthFactory</a>
+, <a class="el" href="classpulsar_1_1_message_builder.html#a331944373a3ed3fe7daed7730e9254c0">pulsar::MessageBuilder</a>
</li>
<li>createProducer()
: <a class="el" href="classpulsar_1_1_client.html#a96f49cc0ce27bfe68d75224991f0ba52">pulsar::Client</a>
@@ -343,6 +344,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>seek()
+: <a class="el" href="classpulsar_1_1_consumer.html#a949eda4ed6de3ecc2e4f793cce1dc06c">pulsar::Consumer</a>
+</li>
+<li>seekAsync()
+: <a class="el" href="classpulsar_1_1_consumer.html#a52bb7deeca9c8376de61c88bb5db24e5">pulsar::Consumer</a>
+</li>
<li>send()
: <a class="el" href="classpulsar_1_1_producer.html#ad4737186cf798acfb24a167796259443">pulsar::Producer</a>
</li>
diff --git a/content/api/cpp/functions_func.html b/content/api/cpp/functions_func.html
index 95022ad..80f9193 100644
--- a/content/api/cpp/functions_func.html
+++ b/content/api/cpp/functions_func.html
@@ -147,7 +147,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
: <a class="el" href="classpulsar_1_1_consumer.html#afe59503d5d5309f38d4e246bd9f435b4">pulsar::Consumer</a>
</li>
<li>create()
-: <a class="el" href="classpulsar_1_1_message_builder.html#a331944373a3ed3fe7daed7730e9254c0">pulsar::MessageBuilder</a>
+: <a class="el" href="classpulsar_1_1_auth_factory.html#aa99900a3f8ed1ee55900431cc784f624">pulsar::AuthFactory</a>
+, <a class="el" href="classpulsar_1_1_message_builder.html#a331944373a3ed3fe7daed7730e9254c0">pulsar::MessageBuilder</a>
</li>
<li>createProducer()
: <a class="el" href="classpulsar_1_1_client.html#a96f49cc0ce27bfe68d75224991f0ba52">pulsar::Client</a>
@@ -343,6 +344,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>seek()
+: <a class="el" href="classpulsar_1_1_consumer.html#a949eda4ed6de3ecc2e4f793cce1dc06c">pulsar::Consumer</a>
+</li>
+<li>seekAsync()
+: <a class="el" href="classpulsar_1_1_consumer.html#a52bb7deeca9c8376de61c88bb5db24e5">pulsar::Consumer</a>
+</li>
<li>send()
: <a class="el" href="classpulsar_1_1_producer.html#ad4737186cf798acfb24a167796259443">pulsar::Producer</a>
</li>
diff --git a/content/api/cpp/hierarchy.html b/content/api/cpp/hierarchy.html
index f794435..66fbe3d 100644
--- a/content/api/cpp/hierarchy.html
+++ b/content/api/cpp/hierarchy.html
@@ -90,7 +90,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="contents">
<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_authentication.html" target="_self">pulsar::Authentication</a></td><td class="desc"></td></tr>
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">▼</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_authentication.html" target="_self">pulsar::Authentication</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_auth_athenz.html" target="_self">pulsar::AuthAthenz</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_auth_tls.html" target="_self">pulsar::AuthTls</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_authentication_data_provider.html" target="_self">pulsar::AuthenticationDataProvider</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_auth_factory.html" target="_self">pulsar::AuthFactory</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_broker_consumer_stats.html" target="_self">pulsar::BrokerConsumerStats</a></td><td class="desc"></td></tr>
diff --git a/content/api/cpp/index.html b/content/api/cpp/index.html
index 604251f..b2d1029 100644
--- a/content/api/cpp/index.html
+++ b/content/api/cpp/index.html
@@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ cd pulsar-client-cpp</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> $ cmake .</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> $ make</div></div><!-- fragment --><h2>Consumer</h2>
<div class="fragment"><div class="line">Client client(<span class="stringliteral">"pulsar://localhost:6650"</span>);</div><div class="line"></div><div class="line">Consumer consumer;</div><div class="line"><a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result = client.subscribe(<span class="stringliteral">"persistent://sample/standalone/ns1/my-topic"</span>, <span class="stringliteral">"my-subscribtion-name"</span>, [...]
<div class="fragment"><div class="line">Client client(<span class="stringliteral">"pulsar://localhost:6650"</span>);</div><div class="line"></div><div class="line">Producer producer;</div><div class="line"><a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result = client.createProducer(<span class="stringliteral">"persistent://sample/standalone/ns1/my-topic"</span>, producer);</div><div class="line"><span class="keywordflow">if</ [...]
-<div class="fragment"><div class="line">ClientConfiguration config = ClientConfiguration();</div><div class="line">config.setUseTls(<span class="keyword">true</span>);</div><div class="line">std::string certfile = <span class="stringliteral">"/path/to/cacert.pem"</span>;</div><div class="line"></div><div class="line">ParamMap params;</div><div class="line">params[<span class="stringliteral">"tlsCertFile"</span>] = <span class="stringliteral">"/path/to/client-cert [...]
+<div class="fragment"><div class="line">ClientConfiguration config = ClientConfiguration();</div><div class="line">config.setUseTls(<span class="keyword">true</span>);</div><div class="line">std::string certfile = <span class="stringliteral">"/path/to/cacert.pem"</span>;</div><div class="line"></div><div class="line">ParamMap params;</div><div class="line">params[<span class="stringliteral">"tlsCertFile"</span>] = <span class="stringliteral">"/path/to/client-cert [...]
<p>After you changed code, run auto-formatting by the following command.</p>
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> make format</div></div><!-- fragment --><p> You need to have the following installed to use the auto-formatting.</p><ul>
<li><a href="https://clang.llvm.org/">clang-format 5.0</a> </li>
diff --git a/content/api/cpp/message_8h_source.html b/content/api/cpp/message_8h_source.html
index 681b95a..091e3eb 100644
--- a/content/api/cpp/message_8h_source.html
+++ b/content/api/cpp/message_8h_source.html
@@ -89,7 +89,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">message.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00023">< [...]
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00023">< [...]
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
diff --git a/content/api/cpp/namespacepulsar.html b/content/api/cpp/namespacepulsar.html
index cfb6560..4912a77 100644
--- a/content/api/cpp/namespacepulsar.html
+++ b/content/api/cpp/namespacepulsar.html
@@ -94,12 +94,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html">Authentication</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication_data_provider.html">AuthenticationDataProvider</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_tls.html">AuthTls</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_client.html">Client</a></td></tr>
diff --git a/content/api/cpp/search/all_0.js b/content/api/cpp/search/all_0.js
index 3ae091d..dd92c1b 100644
--- a/content/api/cpp/search/all_0.js
+++ b/content/api/cpp/search/all_0.js
@@ -4,7 +4,9 @@ var searchData=
['acknowledgeasync',['acknowledgeAsync',['../classpulsar_1_1_consumer.html#a867bebab981d5aa2f74217308aa2353c',1,'pulsar::Consumer']]],
['acknowledgecumulative',['acknowledgeCumulative',['../classpulsar_1_1_consumer.html#a3eb0b0db2da0628da15d3f242e254f6d',1,'pulsar::Consumer']]],
['acknowledgecumulativeasync',['acknowledgeCumulativeAsync',['../classpulsar_1_1_consumer.html#a6ad164b1ab4449b17bce764224e92960',1,'pulsar::Consumer']]],
+ ['authathenz',['AuthAthenz',['../classpulsar_1_1_auth_athenz.html',1,'pulsar']]],
['authentication',['Authentication',['../classpulsar_1_1_authentication.html',1,'pulsar']]],
['authenticationdataprovider',['AuthenticationDataProvider',['../classpulsar_1_1_authentication_data_provider.html',1,'pulsar']]],
- ['authfactory',['AuthFactory',['../classpulsar_1_1_auth_factory.html',1,'pulsar']]]
+ ['authfactory',['AuthFactory',['../classpulsar_1_1_auth_factory.html',1,'pulsar']]],
+ ['authtls',['AuthTls',['../classpulsar_1_1_auth_tls.html',1,'pulsar']]]
];
diff --git a/content/api/cpp/search/all_2.js b/content/api/cpp/search/all_2.js
index 21bcd4c..afbe0c1 100644
--- a/content/api/cpp/search/all_2.js
+++ b/content/api/cpp/search/all_2.js
@@ -12,7 +12,7 @@ var searchData=
['consumerfailover',['ConsumerFailover',['../namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40aadffd5f0d50b1da36685230cd3f910a1',1,'pulsar']]],
['consumershared',['ConsumerShared',['../namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40ac55370821e835a03c2da742ab27e1705',1,'pulsar']]],
['consumertype',['ConsumerType',['../namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40',1,'pulsar']]],
- ['create',['create',['../classpulsar_1_1_message_builder.html#a331944373a3ed3fe7daed7730e9254c0',1,'pulsar::MessageBuilder']]],
+ ['create',['create',['../classpulsar_1_1_auth_factory.html#aa99900a3f8ed1ee55900431cc784f624',1,'pulsar::AuthFactory::create()'],['../classpulsar_1_1_message_builder.html#a331944373a3ed3fe7daed7730e9254c0',1,'pulsar::MessageBuilder::create()']]],
['createproducer',['createProducer',['../classpulsar_1_1_client.html#a96f49cc0ce27bfe68d75224991f0ba52',1,'pulsar::Client::createProducer(const std::string &topic, Producer &producer)'],['../classpulsar_1_1_client.html#aae7658dee80ad23b418cfb7e12f5df05',1,'pulsar::Client::createProducer(const std::string &topic, const ProducerConfiguration &conf, Producer &producer)']]],
['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_c.js b/content/api/cpp/search/all_c.js
index 36d450a..854e76a 100644
--- a/content/api/cpp/search/all_c.js
+++ b/content/api/cpp/search/all_c.js
@@ -1,5 +1,7 @@
var searchData=
[
+ ['seek',['seek',['../classpulsar_1_1_consumer.html#a949eda4ed6de3ecc2e4f793cce1dc06c',1,'pulsar::Consumer']]],
+ ['seekasync',['seekAsync',['../classpulsar_1_1_consumer.html#a52bb7deeca9c8376de61c88bb5db24e5',1,'pulsar::Consumer']]],
['send',['send',['../classpulsar_1_1_producer.html#ad4737186cf798acfb24a167796259443',1,'pulsar::Producer']]],
['sendasync',['sendAsync',['../classpulsar_1_1_producer.html#a7b31f92eb0362bdff32316fc9ab70fd7',1,'pulsar::Producer']]],
['serialize',['serialize',['../classpulsar_1_1_message_id.html#a665b97923d70670a87361038e5ec3fe6',1,'pulsar::MessageId']]],
diff --git a/content/api/cpp/search/classes_0.js b/content/api/cpp/search/classes_0.js
index 9837e3a..c73c357 100644
--- a/content/api/cpp/search/classes_0.js
+++ b/content/api/cpp/search/classes_0.js
@@ -1,6 +1,8 @@
var searchData=
[
+ ['authathenz',['AuthAthenz',['../classpulsar_1_1_auth_athenz.html',1,'pulsar']]],
['authentication',['Authentication',['../classpulsar_1_1_authentication.html',1,'pulsar']]],
['authenticationdataprovider',['AuthenticationDataProvider',['../classpulsar_1_1_authentication_data_provider.html',1,'pulsar']]],
- ['authfactory',['AuthFactory',['../classpulsar_1_1_auth_factory.html',1,'pulsar']]]
+ ['authfactory',['AuthFactory',['../classpulsar_1_1_auth_factory.html',1,'pulsar']]],
+ ['authtls',['AuthTls',['../classpulsar_1_1_auth_tls.html',1,'pulsar']]]
];
diff --git a/content/api/cpp/search/functions_2.js b/content/api/cpp/search/functions_2.js
index 11bea6e..8650c0a 100644
--- a/content/api/cpp/search/functions_2.js
+++ b/content/api/cpp/search/functions_2.js
@@ -4,7 +4,7 @@ var searchData=
['close',['close',['../classpulsar_1_1_client.html#ac3f0a65b099f88781548d4fad41685ac',1,'pulsar::Client::close()'],['../classpulsar_1_1_producer.html#a0b4a93617a0c0f8d172633a7bf8ba06b',1,'pulsar::Producer::close()']]],
['closeasync',['closeAsync',['../classpulsar_1_1_producer.html#a40f5268e6754c9e61e2406d432cffe2f',1,'pulsar::Producer']]],
['consumer',['Consumer',['../classpulsar_1_1_consumer.html#afe59503d5d5309f38d4e246bd9f435b4',1,'pulsar::Consumer']]],
- ['create',['create',['../classpulsar_1_1_message_builder.html#a331944373a3ed3fe7daed7730e9254c0',1,'pulsar::MessageBuilder']]],
+ ['create',['create',['../classpulsar_1_1_auth_factory.html#aa99900a3f8ed1ee55900431cc784f624',1,'pulsar::AuthFactory::create()'],['../classpulsar_1_1_message_builder.html#a331944373a3ed3fe7daed7730e9254c0',1,'pulsar::MessageBuilder::create()']]],
['createproducer',['createProducer',['../classpulsar_1_1_client.html#a96f49cc0ce27bfe68d75224991f0ba52',1,'pulsar::Client::createProducer(const std::string &topic, Producer &producer)'],['../classpulsar_1_1_client.html#aae7658dee80ad23b418cfb7e12f5df05',1,'pulsar::Client::createProducer(const std::string &topic, const ProducerConfiguration &conf, Producer &producer)']]],
['createreader',['createReader',['../classpulsar_1_1_client.html#ad2f6404e06200714e1fe82419b7c963a',1,'pulsar::Client']]]
];
diff --git a/content/api/cpp/search/functions_b.js b/content/api/cpp/search/functions_b.js
index 36d450a..854e76a 100644
--- a/content/api/cpp/search/functions_b.js
+++ b/content/api/cpp/search/functions_b.js
@@ -1,5 +1,7 @@
var searchData=
[
+ ['seek',['seek',['../classpulsar_1_1_consumer.html#a949eda4ed6de3ecc2e4f793cce1dc06c',1,'pulsar::Consumer']]],
+ ['seekasync',['seekAsync',['../classpulsar_1_1_consumer.html#a52bb7deeca9c8376de61c88bb5db24e5',1,'pulsar::Consumer']]],
['send',['send',['../classpulsar_1_1_producer.html#ad4737186cf798acfb24a167796259443',1,'pulsar::Producer']]],
['sendasync',['sendAsync',['../classpulsar_1_1_producer.html#a7b31f92eb0362bdff32316fc9ab70fd7',1,'pulsar::Producer']]],
['serialize',['serialize',['../classpulsar_1_1_message_id.html#a665b97923d70670a87361038e5ec3fe6',1,'pulsar::MessageId']]],
diff --git a/content/api/cpp/authentication_8h_source.html b/content/api/cpp/string__map_8h_source.html
similarity index 64%
copy from content/api/cpp/authentication_8h_source.html
copy to content/api/cpp/string__map_8h_source.html
index 53715de..34e99be 100644
--- a/content/api/cpp/authentication_8h_source.html
+++ b/content/api/cpp/string__map_8h_source.html
@@ -4,7 +4,7 @@
<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: include/pulsar/c/authentication.h Source File</title>
+<title>pulsar-client-cpp: include/pulsar/c/string_map.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -86,10 +86,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">authentication.h</div> </div>
+<div class="title">string_map.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00023">< [...]
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00023">< [...]
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
diff --git a/content/api/python/functions/context.m.html b/content/api/python/functions/context.m.html
new file mode 100644
index 0000000..5273b11
--- /dev/null
+++ b/content/api/python/functions/context.m.html
@@ -0,0 +1,1652 @@
+<!doctype html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
+
+ <title>pulsar.functions.context API documentation</title>
+ <meta name="description" content="context.py: Context defines context information available during
+# processing of a request." />
+
+ <link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,300' rel='stylesheet' type='text/css'>
+
+ <style type="text/css">
+
+* {
+ box-sizing: border-box;
+}
+/*! normalize.css v1.1.1 | MIT License | git.io/normalize */
+
+/* ==========================================================================
+ HTML5 display definitions
+ ========================================================================== */
+
+/**
+ * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
+ */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section,
+summary {
+ display: block;
+}
+
+/**
+ * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
+ */
+
+audio,
+canvas,
+video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+}
+
+/**
+ * Prevent modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/**
+ * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
+ * Known issue: no IE 6 support.
+ */
+
+[hidden] {
+ display: none;
+}
+
+/* ==========================================================================
+ Base
+ ========================================================================== */
+
+/**
+ * 1. Prevent system color scheme's background color being used in Firefox, IE,
+ * and Opera.
+ * 2. Prevent system color scheme's text color being used in Firefox, IE, and
+ * Opera.
+ * 3. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
+ * `em` units.
+ * 4. Prevent iOS text size adjust after orientation change, without disabling
+ * user zoom.
+ */
+
+html {
+ background: #fff; /* 1 */
+ color: #000; /* 2 */
+ font-size: 100%; /* 3 */
+ -webkit-text-size-adjust: 100%; /* 4 */
+ -ms-text-size-adjust: 100%; /* 4 */
+}
+
+/**
+ * Address `font-family` inconsistency between `textarea` and other form
+ * elements.
+ */
+
+html,
+button,
+input,
+select,
+textarea {
+ font-family: sans-serif;
+}
+
+/**
+ * Address margins handled incorrectly in IE 6/7.
+ */
+
+body {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Links
+ ========================================================================== */
+
+/**
+ * Address `outline` inconsistency between Chrome and other browsers.
+ */
+
+a:focus {
+ outline: thin dotted;
+}
+
+/**
+ * Improve readability when focused and also mouse hovered in all browsers.
+ */
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+/* ==========================================================================
+ Typography
+ ========================================================================== */
+
+/**
+ * Address font sizes and margins set differently in IE 6/7.
+ * Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
+ * and Chrome.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+h2 {
+ font-size: 1.5em;
+ margin: 0.83em 0;
+}
+
+h3 {
+ font-size: 1.17em;
+ margin: 1em 0;
+}
+
+h4 {
+ font-size: 1em;
+ margin: 1.33em 0;
+}
+
+h5 {
+ font-size: 0.83em;
+ margin: 1.67em 0;
+}
+
+h6 {
+ font-size: 0.67em;
+ margin: 2.33em 0;
+}
+
+/**
+ * Address styling not present in IE 7/8/9, Safari 5, and Chrome.
+ */
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+/**
+ * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
+ */
+
+b,
+strong {
+ font-weight: bold;
+}
+
+blockquote {
+ margin: 1em 40px;
+}
+
+/**
+ * Address styling not present in Safari 5 and Chrome.
+ */
+
+dfn {
+ font-style: italic;
+}
+
+/**
+ * Address differences between Firefox and other browsers.
+ * Known issue: no IE 6/7 normalization.
+ */
+
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+
+/**
+ * Address styling not present in IE 6/7/8/9.
+ */
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+/**
+ * Address margins set differently in IE 6/7.
+ */
+
+p,
+pre {
+ margin: 1em 0;
+}
+
+/**
+ * Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
+ */
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, serif;
+ _font-family: 'courier new', monospace;
+ font-size: 1em;
+}
+
+/**
+ * Improve readability of pre-formatted text in all browsers.
+ */
+
+pre {
+ white-space: pre;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+/**
+ * Address CSS quotes not supported in IE 6/7.
+ */
+
+q {
+ quotes: none;
+}
+
+/**
+ * Address `quotes` property not supported in Safari 4.
+ */
+
+q:before,
+q:after {
+ content: '';
+ content: none;
+}
+
+/**
+ * Address inconsistent and variable font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+/* ==========================================================================
+ Lists
+ ========================================================================== */
+
+/**
+ * Address margins set differently in IE 6/7.
+ */
+
+dl,
+menu,
+ol,
+ul {
+ margin: 1em 0;
+}
+
+dd {
+ margin: 0 0 0 40px;
+}
+
+/**
+ * Address paddings set differently in IE 6/7.
+ */
+
+menu,
+ol,
+ul {
+ padding: 0 0 0 40px;
+}
+
+/**
+ * Correct list images handled incorrectly in IE 7.
+ */
+
+nav ul,
+nav ol {
+ list-style: none;
+ list-style-image: none;
+}
+
+/* ==========================================================================
+ Embedded content
+ ========================================================================== */
+
+/**
+ * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
+ * 2. Improve image quality when scaled in IE 7.
+ */
+
+img {
+ border: 0; /* 1 */
+ -ms-interpolation-mode: bicubic; /* 2 */
+}
+
+/**
+ * Correct overflow displayed oddly in IE 9.
+ */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* ==========================================================================
+ Figures
+ ========================================================================== */
+
+/**
+ * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
+ */
+
+figure {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Forms
+ ========================================================================== */
+
+/**
+ * Correct margin displayed oddly in IE 6/7.
+ */
+
+form {
+ margin: 0;
+}
+
+/**
+ * Define consistent border, margin, and padding.
+ */
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+/**
+ * 1. Correct color not being inherited in IE 6/7/8/9.
+ * 2. Correct text not wrapping in Firefox 3.
+ * 3. Correct alignment displayed oddly in IE 6/7.
+ */
+
+legend {
+ border: 0; /* 1 */
+ padding: 0;
+ white-space: normal; /* 2 */
+ *margin-left: -7px; /* 3 */
+}
+
+/**
+ * 1. Correct font size not being inherited in all browsers.
+ * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
+ * and Chrome.
+ * 3. Improve appearance and consistency in all browsers.
+ */
+
+button,
+input,
+select,
+textarea {
+ font-size: 100%; /* 1 */
+ margin: 0; /* 2 */
+ vertical-align: baseline; /* 3 */
+ *vertical-align: middle; /* 3 */
+}
+
+/**
+ * Address Firefox 3+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+
+button,
+input {
+ line-height: normal;
+}
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
+ * Correct `select` style inheritance in Firefox 4+ and Opera.
+ */
+
+button,
+select {
+ text-transform: none;
+}
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ * and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ * `input` and others.
+ * 4. Remove inner spacing in IE 7 without affecting normal text inputs.
+ * Known issue: inner spacing remains in IE 6.
+ */
+
+button,
+html input[type="button"], /* 1 */
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; /* 2 */
+ cursor: pointer; /* 3 */
+ *overflow: visible; /* 4 */
+}
+
+/**
+ * Re-set default cursor for disabled elements.
+ */
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+/**
+ * 1. Address box sizing set to content-box in IE 8/9.
+ * 2. Remove excess padding in IE 8/9.
+ * 3. Remove excess padding in IE 7.
+ * Known issue: excess padding remains in IE 6.
+ */
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+ *height: 13px; /* 3 */
+ *width: 13px; /* 3 */
+}
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
+ * (include `-moz` to future-proof).
+ */
+
+input[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box; /* 2 */
+ box-sizing: content-box;
+}
+
+/**
+ * Remove inner padding and search cancel button in Safari 5 and Chrome
+ * on OS X.
+ */
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * Remove inner padding and border in Firefox 3+.
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/**
+ * 1. Remove default vertical scrollbar in IE 6/7/8/9.
+ * 2. Improve readability and alignment in all browsers.
+ */
+
+textarea {
+ overflow: auto; /* 1 */
+ vertical-align: top; /* 2 */
+}
+
+/* ==========================================================================
+ Tables
+ ========================================================================== */
+
+/**
+ * Remove most spacing between table cells.
+ */
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+ </style>
+
+ <style type="text/css">
+
+ html, body {
+ margin: 0;
+ padding: 0;
+ min-height: 100%;
+ }
+ body {
+ background: #fff;
+ font-family: "Source Sans Pro", "Helvetica Neueue", Helvetica, sans;
+ font-weight: 300;
+ font-size: 16px;
+ line-height: 1.6em;
+ }
+ #content {
+ width: 70%;
+ max-width: 850px;
+ float: left;
+ padding: 30px 60px;
+ border-left: 1px solid #ddd;
+ }
+ #sidebar {
+ width: 25%;
+ float: left;
+ padding: 30px;
+ overflow: hidden;
+ }
+ #nav {
+ font-size: 130%;
+ margin: 0 0 15px 0;
+ }
+
+ #top {
+ display: block;
+ position: fixed;
+ bottom: 5px;
+ left: 5px;
+ font-size: .85em;
+ text-transform: uppercase;
+ }
+
+ #footer {
+ font-size: .75em;
+ padding: 5px 30px;
+ border-top: 1px solid #ddd;
+ text-align: right;
+ }
+ #footer p {
+ margin: 0 0 0 30px;
+ display: inline-block;
+ }
+
+ h1, h2, h3, h4, h5 {
+ font-weight: 300;
+ }
+ h1 {
+ font-size: 2.5em;
+ line-height: 1.1em;
+ margin: 0 0 .50em 0;
+ }
+
+ h2 {
+ font-size: 1.75em;
+ margin: 1em 0 .50em 0;
+ }
+
+ h3 {
+ margin: 25px 0 10px 0;
+ }
+
+ h4 {
+ margin: 0;
+ font-size: 105%;
+ }
+
+ a {
+ color: #058;
+ text-decoration: none;
+ transition: color .3s ease-in-out;
+ }
+
+ a:hover {
+ color: #e08524;
+ transition: color .3s ease-in-out;
+ }
+
+ pre, code, .mono, .name {
+ font-family: "Ubuntu Mono", "Cousine", "DejaVu Sans Mono", monospace;
+ }
+
+ .title .name {
+ font-weight: bold;
+ }
+ .section-title {
+ margin-top: 2em;
+ }
+ .ident {
+ color: #900;
+ }
+
+ code {
+ background: #f9f9f9;
+ }
+
+ pre {
+ background: #fefefe;
+ border: 1px solid #ddd;
+ box-shadow: 2px 2px 0 #f3f3f3;
+ margin: 0 30px;
+ padding: 15px 30px;
+ }
+
+ .codehilite {
+ margin: 0 30px 10px 30px;
+ }
+
+ .codehilite pre {
+ margin: 0;
+ }
+ .codehilite .err { background: #ff3300; color: #fff !important; }
+
+ table#module-list {
+ font-size: 110%;
+ }
+
+ table#module-list tr td:first-child {
+ padding-right: 10px;
+ white-space: nowrap;
+ }
+
+ table#module-list td {
+ vertical-align: top;
+ padding-bottom: 8px;
+ }
+
+ table#module-list td p {
+ margin: 0 0 7px 0;
+ }
+
+ .def {
+ display: table;
+ }
+
+ .def p {
+ display: table-cell;
+ vertical-align: top;
+ text-align: left;
+ }
+
+ .def p:first-child {
+ white-space: nowrap;
+ }
+
+ .def p:last-child {
+ width: 100%;
+ }
+
+
+ #index {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+ }
+ ul#index .class_name {
+ /* font-size: 110%; */
+ font-weight: bold;
+ }
+ #index ul {
+ margin: 0;
+ }
+
+ .item {
+ margin: 0 0 15px 0;
+ }
+
+ .item .class {
+ margin: 0 0 25px 30px;
+ }
+
+ .item .class ul.class_list {
+ margin: 0 0 20px 0;
+ }
+
+ .item .name {
+ background: #fafafa;
+ margin: 0;
+ font-weight: bold;
+ padding: 5px 10px;
+ border-radius: 3px;
+ display: inline-block;
+ min-width: 40%;
+ }
+ .item .name:hover {
+ background: #f6f6f6;
+ }
+
+ .item .empty_desc {
+ margin: 0 0 5px 0;
+ padding: 0;
+ }
+
+ .item .inheritance {
+ margin: 3px 0 0 30px;
+ }
+
+ .item .inherited {
+ color: #666;
+ }
+
+ .item .desc {
+ padding: 0 8px;
+ margin: 0;
+ }
+
+ .item .desc p {
+ margin: 0 0 10px 0;
+ }
+
+ .source_cont {
+ margin: 0;
+ padding: 0;
+ }
+
+ .source_link a {
+ background: #ffc300;
+ font-weight: 400;
+ font-size: .75em;
+ text-transform: uppercase;
+ color: #fff;
+ text-shadow: 1px 1px 0 #f4b700;
+
+ padding: 3px 8px;
+ border-radius: 2px;
+ transition: background .3s ease-in-out;
+ }
+ .source_link a:hover {
+ background: #FF7200;
+ text-shadow: none;
+ transition: background .3s ease-in-out;
+ }
+
+ .source {
+ display: none;
+ max-height: 600px;
+ overflow-y: scroll;
+ margin-bottom: 15px;
+ }
+
+ .source .codehilite {
+ margin: 0;
+ }
+
+ .desc h1, .desc h2, .desc h3 {
+ font-size: 100% !important;
+ }
+ .clear {
+ clear: both;
+ }
+
+ @media all and (max-width: 950px) {
+ #sidebar {
+ width: 35%;
+ }
+ #content {
+ width: 65%;
+ }
+ }
+ @media all and (max-width: 650px) {
+ #top {
+ display: none;
+ }
+ #sidebar {
+ float: none;
+ width: auto;
+ }
+ #content {
+ float: none;
+ width: auto;
+ padding: 30px;
+ }
+
+ #index ul {
+ padding: 0;
+ margin-bottom: 15px;
+ }
+ #index ul li {
+ display: inline-block;
+ margin-right: 30px;
+ }
+ #footer {
+ text-align: left;
+ }
+ #footer p {
+ display: block;
+ margin: inherit;
+ }
+ }
+
+ /*****************************/
+
+ </style>
+
+
+ <style type="text/css">
+
+/* ==========================================================================
+ EXAMPLE Media Queries for Responsive Design.
+ These examples override the primary ('mobile first') styles.
+ Modify as content requires.
+ ========================================================================== */
+
+@media only screen and (min-width: 35em) {
+ /* Style adjustments for viewports that meet the condition */
+}
+
+@media print,
+ (-o-min-device-pixel-ratio: 5/4),
+ (-webkit-min-device-pixel-ratio: 1.25),
+ (min-resolution: 120dpi) {
+ /* Style adjustments for high resolution devices */
+}
+
+/* ==========================================================================
+ Print styles.
+ Inlined to avoid required HTTP connection: h5bp.com/r
+ ========================================================================== */
+
+@media print {
+ * {
+ background: transparent !important;
+ color: #000 !important; /* Black prints faster: h5bp.com/s */
+ box-shadow: none !important;
+ text-shadow: none !important;
+ }
+
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ /*
+ * Don't show links for images, or javascript/internal links
+ */
+
+ .ir a:after,
+ a[href^="javascript:"]:after,
+ a[href^="#"]:after {
+ content: "";
+ }
+
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+
+ thead {
+ display: table-header-group; /* h5bp.com/t */
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ @page {
+ margin: 0.5cm;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+}
+
+ </style>
+
+ <script type="text/javascript">
+ function toggle(id, $link) {
+ $node = document.getElementById(id);
+ if (!$node)
+ return;
+ if (!$node.style.display || $node.style.display == 'none') {
+ $node.style.display = 'block';
+ $link.innerHTML = 'Hide source ≢';
+ } else {
+ $node.style.display = 'none';
+ $link.innerHTML = 'Show source ≡';
+ }
+ }
+ </script>
+</head>
+<body>
+<a href="#" id="top">Top</a>
+
+<div id="container">
+
+
+ <div id="sidebar">
+ <h1>Index</h1>
+ <ul id="index">
+
+
+ <li class="set"><h3><a href="#header-classes">Classes</a></h3>
+ <ul>
+ <li class="mono">
+ <span class="class_name"><a href="#pulsar.functions.context.Context">Context</a></span>
+
+
+ <ul>
+ <li class="mono"><a href="#pulsar.functions.context.Context.ack">ack</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.get_current_message_topic_name">get_current_message_topic_name</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.get_function_id">get_function_id</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.get_function_name">get_function_name</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.get_function_namespace">get_function_namespace</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.get_function_tenant">get_function_tenant</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.get_function_version">get_function_version</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.get_instance_id">get_instance_id</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.get_logger">get_logger</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.get_message_id">get_message_id</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.get_output_serde_class_name">get_output_serde_class_name</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.get_output_topic">get_output_topic</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.get_user_config_map">get_user_config_map</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.get_user_config_value">get_user_config_value</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.publish">publish</a></li>
+ <li class="mono"><a href="#pulsar.functions.context.Context.record_metric">record_metric</a></li>
+ </ul>
+
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+ </div>
+
+ <article id="content">
+
+
+
+
+
+
+ <header id="section-intro">
+ <h1 class="title"><span class="name">pulsar.functions.context</span> module</h1>
+ <p>context.py: Context defines context information available during</p>
+<h1>processing of a request.</h1>
+
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context" class="source">
+ <pre><code>#!/usr/bin/env python
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# -*- encoding: utf-8 -*-
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+"""context.py: Context defines context information available during
+# processing of a request.
+"""
+from abc import abstractmethod
+
+class Context(object):
+ """Interface defining information available at process time"""
+ @abstractmethod
+ def get_message_id(self):
+ """Return the messageid of the current message that we are processing"""
+ pass
+
+ @abstractmethod
+ def get_current_message_topic_name(self):
+ """Returns the topic name of the message that we are processing"""
+ pass
+
+ @abstractmethod
+ def get_function_tenant(self):
+ """Returns the tenant of the message that's being processed"""
+ pass
+
+ @abstractmethod
+ def get_function_namespace(self):
+ """Returns the namespace of the message that's being processed"""
+
+ @abstractmethod
+ def get_function_name(self):
+ """Returns the function name that we are a part of"""
+ pass
+
+ @abstractmethod
+ def get_function_id(self):
+ """Returns the function id that we are a part of"""
+ pass
+
+ @abstractmethod
+ def get_instance_id(self):
+ """Returns the instance id that is executing the function"""
+ pass
+
+ @abstractmethod
+ def get_function_version(self):
+ """Returns the version of function that we are executing"""
+ pass
+
+ @abstractmethod
+ def get_logger(self):
+ """Returns the logger object that can be used to do logging"""
+ pass
+
+ @abstractmethod
+ def get_user_config_value(self, key):
+ """Returns the value of the user-defined config. If the key doesn't exist, None is returned"""
+ pass
+
+ @abstractmethod
+ def get_user_config_map(self):
+ """Returns the entire user-defined config as a dict (the dict will be empty if no user-defined config is supplied)"""
+ pass
+
+ @abstractmethod
+ def record_metric(self, metric_name, metric_value):
+ """Records the metric_value. metric_value has to satisfy isinstance(metric_value, numbers.Number)"""
+ pass
+
+ @abstractmethod
+ def publish(self, topic_name, message, serde_class_name):
+ """Publishes message to topic_name by first serializing the message using serde_class_name serde"""
+ pass
+
+ @abstractmethod
+ def publish(self, topic_name, message):
+ """Publishes message to topic_name by first serializing the message using IdentitySerDe"""
+ pass
+
+ @abstractmethod
+ def get_output_topic(self):
+ """Returns the output topic of function"""
+ pass
+
+ @abstractmethod
+ def get_output_serde_class_name(self):
+ """return output Serde class"""
+ pass
+
+ @abstractmethod
+ def ack(self, msgid, topic):
+ """ack this message id"""
+ pass
+</code></pre>
+ </div>
+
+ </header>
+
+ <section id="section-items">
+
+
+ <h2 class="section-title" id="header-classes">Classes</h2>
+
+ <div class="item">
+ <p id="pulsar.functions.context.Context" class="name">class <span class="ident">Context</span></p>
+
+
+ <div class="desc"><p>Interface defining information available at process time</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context" class="source">
+ <pre><code>class Context(object):
+ """Interface defining information available at process time"""
+ @abstractmethod
+ def get_message_id(self):
+ """Return the messageid of the current message that we are processing"""
+ pass
+
+ @abstractmethod
+ def get_current_message_topic_name(self):
+ """Returns the topic name of the message that we are processing"""
+ pass
+
+ @abstractmethod
+ def get_function_tenant(self):
+ """Returns the tenant of the message that's being processed"""
+ pass
+
+ @abstractmethod
+ def get_function_namespace(self):
+ """Returns the namespace of the message that's being processed"""
+
+ @abstractmethod
+ def get_function_name(self):
+ """Returns the function name that we are a part of"""
+ pass
+
+ @abstractmethod
+ def get_function_id(self):
+ """Returns the function id that we are a part of"""
+ pass
+
+ @abstractmethod
+ def get_instance_id(self):
+ """Returns the instance id that is executing the function"""
+ pass
+
+ @abstractmethod
+ def get_function_version(self):
+ """Returns the version of function that we are executing"""
+ pass
+
+ @abstractmethod
+ def get_logger(self):
+ """Returns the logger object that can be used to do logging"""
+ pass
+
+ @abstractmethod
+ def get_user_config_value(self, key):
+ """Returns the value of the user-defined config. If the key doesn't exist, None is returned"""
+ pass
+
+ @abstractmethod
+ def get_user_config_map(self):
+ """Returns the entire user-defined config as a dict (the dict will be empty if no user-defined config is supplied)"""
+ pass
+
+ @abstractmethod
+ def record_metric(self, metric_name, metric_value):
+ """Records the metric_value. metric_value has to satisfy isinstance(metric_value, numbers.Number)"""
+ pass
+
+ @abstractmethod
+ def publish(self, topic_name, message, serde_class_name):
+ """Publishes message to topic_name by first serializing the message using serde_class_name serde"""
+ pass
+
+ @abstractmethod
+ def publish(self, topic_name, message):
+ """Publishes message to topic_name by first serializing the message using IdentitySerDe"""
+ pass
+
+ @abstractmethod
+ def get_output_topic(self):
+ """Returns the output topic of function"""
+ pass
+
+ @abstractmethod
+ def get_output_serde_class_name(self):
+ """return output Serde class"""
+ pass
+
+ @abstractmethod
+ def ack(self, msgid, topic):
+ """ack this message id"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+
+ <div class="class">
+ <h3>Ancestors (in MRO)</h3>
+ <ul class="class_list">
+ <li><a href="#pulsar.functions.context.Context">Context</a></li>
+ <li>__builtin__.object</li>
+ </ul>
+ <h3>Methods</h3>
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.ack">
+ <p>def <span class="ident">ack</span>(</p><p>self, msgid, topic)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>ack this message id</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.ack', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.ack" class="source">
+ <pre><code>@abstractmethod
+def ack(self, msgid, topic):
+ """ack this message id"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.get_current_message_topic_name">
+ <p>def <span class="ident">get_current_message_topic_name</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Returns the topic name of the message that we are processing</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_current_message_topic_name', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.get_current_message_topic_name" class="source">
+ <pre><code>@abstractmethod
+def get_current_message_topic_name(self):
+ """Returns the topic name of the message that we are processing"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.get_function_id">
+ <p>def <span class="ident">get_function_id</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Returns the function id that we are a part of</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_function_id', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.get_function_id" class="source">
+ <pre><code>@abstractmethod
+def get_function_id(self):
+ """Returns the function id that we are a part of"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.get_function_name">
+ <p>def <span class="ident">get_function_name</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Returns the function name that we are a part of</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_function_name', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.get_function_name" class="source">
+ <pre><code>@abstractmethod
+def get_function_name(self):
+ """Returns the function name that we are a part of"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.get_function_namespace">
+ <p>def <span class="ident">get_function_namespace</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Returns the namespace of the message that's being processed</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_function_namespace', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.get_function_namespace" class="source">
+ <pre><code>@abstractmethod
+def get_function_namespace(self):
+ """Returns the namespace of the message that's being processed"""
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.get_function_tenant">
+ <p>def <span class="ident">get_function_tenant</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Returns the tenant of the message that's being processed</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_function_tenant', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.get_function_tenant" class="source">
+ <pre><code>@abstractmethod
+def get_function_tenant(self):
+ """Returns the tenant of the message that's being processed"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.get_function_version">
+ <p>def <span class="ident">get_function_version</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Returns the version of function that we are executing</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_function_version', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.get_function_version" class="source">
+ <pre><code>@abstractmethod
+def get_function_version(self):
+ """Returns the version of function that we are executing"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.get_instance_id">
+ <p>def <span class="ident">get_instance_id</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Returns the instance id that is executing the function</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_instance_id', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.get_instance_id" class="source">
+ <pre><code>@abstractmethod
+def get_instance_id(self):
+ """Returns the instance id that is executing the function"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.get_logger">
+ <p>def <span class="ident">get_logger</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Returns the logger object that can be used to do logging</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_logger', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.get_logger" class="source">
+ <pre><code>@abstractmethod
+def get_logger(self):
+ """Returns the logger object that can be used to do logging"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.get_message_id">
+ <p>def <span class="ident">get_message_id</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Return the messageid of the current message that we are processing</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_message_id', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.get_message_id" class="source">
+ <pre><code>@abstractmethod
+def get_message_id(self):
+ """Return the messageid of the current message that we are processing"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.get_output_serde_class_name">
+ <p>def <span class="ident">get_output_serde_class_name</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>return output Serde class</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_output_serde_class_name', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.get_output_serde_class_name" class="source">
+ <pre><code>@abstractmethod
+def get_output_serde_class_name(self):
+ """return output Serde class"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.get_output_topic">
+ <p>def <span class="ident">get_output_topic</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Returns the output topic of function</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_output_topic', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.get_output_topic" class="source">
+ <pre><code>@abstractmethod
+def get_output_topic(self):
+ """Returns the output topic of function"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.get_user_config_map">
+ <p>def <span class="ident">get_user_config_map</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Returns the entire user-defined config as a dict (the dict will be empty if no user-defined config is supplied)</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_user_config_map', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.get_user_config_map" class="source">
+ <pre><code>@abstractmethod
+def get_user_config_map(self):
+ """Returns the entire user-defined config as a dict (the dict will be empty if no user-defined config is supplied)"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.get_user_config_value">
+ <p>def <span class="ident">get_user_config_value</span>(</p><p>self, key)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Returns the value of the user-defined config. If the key doesn't exist, None is returned</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_user_config_value', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.get_user_config_value" class="source">
+ <pre><code>@abstractmethod
+def get_user_config_value(self, key):
+ """Returns the value of the user-defined config. If the key doesn't exist, None is returned"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.publish">
+ <p>def <span class="ident">publish</span>(</p><p>self, topic_name, message)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Publishes message to topic_name by first serializing the message using IdentitySerDe</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.publish', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.publish" class="source">
+ <pre><code>@abstractmethod
+def publish(self, topic_name, message):
+ """Publishes message to topic_name by first serializing the message using IdentitySerDe"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.context.Context.record_metric">
+ <p>def <span class="ident">record_metric</span>(</p><p>self, metric_name, metric_value)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Records the metric_value. metric_value has to satisfy isinstance(metric_value, numbers.Number)</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.record_metric', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.context.Context.record_metric" class="source">
+ <pre><code>@abstractmethod
+def record_metric(self, metric_name, metric_value):
+ """Records the metric_value. metric_value has to satisfy isinstance(metric_value, numbers.Number)"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+ </div>
+ </div>
+
+ </section>
+
+ </article>
+ <div class="clear"> </div>
+ <footer id="footer">
+ <p>
+ Documentation generated by
+ <a href="https://github.com/BurntSushi/pdoc">pdoc 0.3.2</a>
+ </p>
+
+ <p>pdoc is in the public domain with the
+ <a href="http://unlicense.org">UNLICENSE</a></p>
+
+ <p>Design by <a href="http://nadh.in">Kailash Nadh</a></p>
+ </footer>
+</div>
+</body>
+</html>
diff --git a/content/api/python/functions/function.m.html b/content/api/python/functions/function.m.html
new file mode 100644
index 0000000..df6ad9f
--- /dev/null
+++ b/content/api/python/functions/function.m.html
@@ -0,0 +1,1139 @@
+<!doctype html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
+
+ <title>pulsar.functions.function API documentation</title>
+ <meta name="description" content="function.py: This is the core interface of the function api.
+# The process method is called for ever..." />
+
+ <link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,300' rel='stylesheet' type='text/css'>
+
+ <style type="text/css">
+
+* {
+ box-sizing: border-box;
+}
+/*! normalize.css v1.1.1 | MIT License | git.io/normalize */
+
+/* ==========================================================================
+ HTML5 display definitions
+ ========================================================================== */
+
+/**
+ * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
+ */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section,
+summary {
+ display: block;
+}
+
+/**
+ * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
+ */
+
+audio,
+canvas,
+video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+}
+
+/**
+ * Prevent modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/**
+ * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
+ * Known issue: no IE 6 support.
+ */
+
+[hidden] {
+ display: none;
+}
+
+/* ==========================================================================
+ Base
+ ========================================================================== */
+
+/**
+ * 1. Prevent system color scheme's background color being used in Firefox, IE,
+ * and Opera.
+ * 2. Prevent system color scheme's text color being used in Firefox, IE, and
+ * Opera.
+ * 3. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
+ * `em` units.
+ * 4. Prevent iOS text size adjust after orientation change, without disabling
+ * user zoom.
+ */
+
+html {
+ background: #fff; /* 1 */
+ color: #000; /* 2 */
+ font-size: 100%; /* 3 */
+ -webkit-text-size-adjust: 100%; /* 4 */
+ -ms-text-size-adjust: 100%; /* 4 */
+}
+
+/**
+ * Address `font-family` inconsistency between `textarea` and other form
+ * elements.
+ */
+
+html,
+button,
+input,
+select,
+textarea {
+ font-family: sans-serif;
+}
+
+/**
+ * Address margins handled incorrectly in IE 6/7.
+ */
+
+body {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Links
+ ========================================================================== */
+
+/**
+ * Address `outline` inconsistency between Chrome and other browsers.
+ */
+
+a:focus {
+ outline: thin dotted;
+}
+
+/**
+ * Improve readability when focused and also mouse hovered in all browsers.
+ */
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+/* ==========================================================================
+ Typography
+ ========================================================================== */
+
+/**
+ * Address font sizes and margins set differently in IE 6/7.
+ * Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
+ * and Chrome.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+h2 {
+ font-size: 1.5em;
+ margin: 0.83em 0;
+}
+
+h3 {
+ font-size: 1.17em;
+ margin: 1em 0;
+}
+
+h4 {
+ font-size: 1em;
+ margin: 1.33em 0;
+}
+
+h5 {
+ font-size: 0.83em;
+ margin: 1.67em 0;
+}
+
+h6 {
+ font-size: 0.67em;
+ margin: 2.33em 0;
+}
+
+/**
+ * Address styling not present in IE 7/8/9, Safari 5, and Chrome.
+ */
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+/**
+ * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
+ */
+
+b,
+strong {
+ font-weight: bold;
+}
+
+blockquote {
+ margin: 1em 40px;
+}
+
+/**
+ * Address styling not present in Safari 5 and Chrome.
+ */
+
+dfn {
+ font-style: italic;
+}
+
+/**
+ * Address differences between Firefox and other browsers.
+ * Known issue: no IE 6/7 normalization.
+ */
+
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+
+/**
+ * Address styling not present in IE 6/7/8/9.
+ */
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+/**
+ * Address margins set differently in IE 6/7.
+ */
+
+p,
+pre {
+ margin: 1em 0;
+}
+
+/**
+ * Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
+ */
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, serif;
+ _font-family: 'courier new', monospace;
+ font-size: 1em;
+}
+
+/**
+ * Improve readability of pre-formatted text in all browsers.
+ */
+
+pre {
+ white-space: pre;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+/**
+ * Address CSS quotes not supported in IE 6/7.
+ */
+
+q {
+ quotes: none;
+}
+
+/**
+ * Address `quotes` property not supported in Safari 4.
+ */
+
+q:before,
+q:after {
+ content: '';
+ content: none;
+}
+
+/**
+ * Address inconsistent and variable font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+/* ==========================================================================
+ Lists
+ ========================================================================== */
+
+/**
+ * Address margins set differently in IE 6/7.
+ */
+
+dl,
+menu,
+ol,
+ul {
+ margin: 1em 0;
+}
+
+dd {
+ margin: 0 0 0 40px;
+}
+
+/**
+ * Address paddings set differently in IE 6/7.
+ */
+
+menu,
+ol,
+ul {
+ padding: 0 0 0 40px;
+}
+
+/**
+ * Correct list images handled incorrectly in IE 7.
+ */
+
+nav ul,
+nav ol {
+ list-style: none;
+ list-style-image: none;
+}
+
+/* ==========================================================================
+ Embedded content
+ ========================================================================== */
+
+/**
+ * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
+ * 2. Improve image quality when scaled in IE 7.
+ */
+
+img {
+ border: 0; /* 1 */
+ -ms-interpolation-mode: bicubic; /* 2 */
+}
+
+/**
+ * Correct overflow displayed oddly in IE 9.
+ */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* ==========================================================================
+ Figures
+ ========================================================================== */
+
+/**
+ * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
+ */
+
+figure {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Forms
+ ========================================================================== */
+
+/**
+ * Correct margin displayed oddly in IE 6/7.
+ */
+
+form {
+ margin: 0;
+}
+
+/**
+ * Define consistent border, margin, and padding.
+ */
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+/**
+ * 1. Correct color not being inherited in IE 6/7/8/9.
+ * 2. Correct text not wrapping in Firefox 3.
+ * 3. Correct alignment displayed oddly in IE 6/7.
+ */
+
+legend {
+ border: 0; /* 1 */
+ padding: 0;
+ white-space: normal; /* 2 */
+ *margin-left: -7px; /* 3 */
+}
+
+/**
+ * 1. Correct font size not being inherited in all browsers.
+ * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
+ * and Chrome.
+ * 3. Improve appearance and consistency in all browsers.
+ */
+
+button,
+input,
+select,
+textarea {
+ font-size: 100%; /* 1 */
+ margin: 0; /* 2 */
+ vertical-align: baseline; /* 3 */
+ *vertical-align: middle; /* 3 */
+}
+
+/**
+ * Address Firefox 3+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+
+button,
+input {
+ line-height: normal;
+}
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
+ * Correct `select` style inheritance in Firefox 4+ and Opera.
+ */
+
+button,
+select {
+ text-transform: none;
+}
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ * and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ * `input` and others.
+ * 4. Remove inner spacing in IE 7 without affecting normal text inputs.
+ * Known issue: inner spacing remains in IE 6.
+ */
+
+button,
+html input[type="button"], /* 1 */
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; /* 2 */
+ cursor: pointer; /* 3 */
+ *overflow: visible; /* 4 */
+}
+
+/**
+ * Re-set default cursor for disabled elements.
+ */
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+/**
+ * 1. Address box sizing set to content-box in IE 8/9.
+ * 2. Remove excess padding in IE 8/9.
+ * 3. Remove excess padding in IE 7.
+ * Known issue: excess padding remains in IE 6.
+ */
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+ *height: 13px; /* 3 */
+ *width: 13px; /* 3 */
+}
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
+ * (include `-moz` to future-proof).
+ */
+
+input[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box; /* 2 */
+ box-sizing: content-box;
+}
+
+/**
+ * Remove inner padding and search cancel button in Safari 5 and Chrome
+ * on OS X.
+ */
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * Remove inner padding and border in Firefox 3+.
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/**
+ * 1. Remove default vertical scrollbar in IE 6/7/8/9.
+ * 2. Improve readability and alignment in all browsers.
+ */
+
+textarea {
+ overflow: auto; /* 1 */
+ vertical-align: top; /* 2 */
+}
+
+/* ==========================================================================
+ Tables
+ ========================================================================== */
+
+/**
+ * Remove most spacing between table cells.
+ */
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+ </style>
+
+ <style type="text/css">
+
+ html, body {
+ margin: 0;
+ padding: 0;
+ min-height: 100%;
+ }
+ body {
+ background: #fff;
+ font-family: "Source Sans Pro", "Helvetica Neueue", Helvetica, sans;
+ font-weight: 300;
+ font-size: 16px;
+ line-height: 1.6em;
+ }
+ #content {
+ width: 70%;
+ max-width: 850px;
+ float: left;
+ padding: 30px 60px;
+ border-left: 1px solid #ddd;
+ }
+ #sidebar {
+ width: 25%;
+ float: left;
+ padding: 30px;
+ overflow: hidden;
+ }
+ #nav {
+ font-size: 130%;
+ margin: 0 0 15px 0;
+ }
+
+ #top {
+ display: block;
+ position: fixed;
+ bottom: 5px;
+ left: 5px;
+ font-size: .85em;
+ text-transform: uppercase;
+ }
+
+ #footer {
+ font-size: .75em;
+ padding: 5px 30px;
+ border-top: 1px solid #ddd;
+ text-align: right;
+ }
+ #footer p {
+ margin: 0 0 0 30px;
+ display: inline-block;
+ }
+
+ h1, h2, h3, h4, h5 {
+ font-weight: 300;
+ }
+ h1 {
+ font-size: 2.5em;
+ line-height: 1.1em;
+ margin: 0 0 .50em 0;
+ }
+
+ h2 {
+ font-size: 1.75em;
+ margin: 1em 0 .50em 0;
+ }
+
+ h3 {
+ margin: 25px 0 10px 0;
+ }
+
+ h4 {
+ margin: 0;
+ font-size: 105%;
+ }
+
+ a {
+ color: #058;
+ text-decoration: none;
+ transition: color .3s ease-in-out;
+ }
+
+ a:hover {
+ color: #e08524;
+ transition: color .3s ease-in-out;
+ }
+
+ pre, code, .mono, .name {
+ font-family: "Ubuntu Mono", "Cousine", "DejaVu Sans Mono", monospace;
+ }
+
+ .title .name {
+ font-weight: bold;
+ }
+ .section-title {
+ margin-top: 2em;
+ }
+ .ident {
+ color: #900;
+ }
+
+ code {
+ background: #f9f9f9;
+ }
+
+ pre {
+ background: #fefefe;
+ border: 1px solid #ddd;
+ box-shadow: 2px 2px 0 #f3f3f3;
+ margin: 0 30px;
+ padding: 15px 30px;
+ }
+
+ .codehilite {
+ margin: 0 30px 10px 30px;
+ }
+
+ .codehilite pre {
+ margin: 0;
+ }
+ .codehilite .err { background: #ff3300; color: #fff !important; }
+
+ table#module-list {
+ font-size: 110%;
+ }
+
+ table#module-list tr td:first-child {
+ padding-right: 10px;
+ white-space: nowrap;
+ }
+
+ table#module-list td {
+ vertical-align: top;
+ padding-bottom: 8px;
+ }
+
+ table#module-list td p {
+ margin: 0 0 7px 0;
+ }
+
+ .def {
+ display: table;
+ }
+
+ .def p {
+ display: table-cell;
+ vertical-align: top;
+ text-align: left;
+ }
+
+ .def p:first-child {
+ white-space: nowrap;
+ }
+
+ .def p:last-child {
+ width: 100%;
+ }
+
+
+ #index {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+ }
+ ul#index .class_name {
+ /* font-size: 110%; */
+ font-weight: bold;
+ }
+ #index ul {
+ margin: 0;
+ }
+
+ .item {
+ margin: 0 0 15px 0;
+ }
+
+ .item .class {
+ margin: 0 0 25px 30px;
+ }
+
+ .item .class ul.class_list {
+ margin: 0 0 20px 0;
+ }
+
+ .item .name {
+ background: #fafafa;
+ margin: 0;
+ font-weight: bold;
+ padding: 5px 10px;
+ border-radius: 3px;
+ display: inline-block;
+ min-width: 40%;
+ }
+ .item .name:hover {
+ background: #f6f6f6;
+ }
+
+ .item .empty_desc {
+ margin: 0 0 5px 0;
+ padding: 0;
+ }
+
+ .item .inheritance {
+ margin: 3px 0 0 30px;
+ }
+
+ .item .inherited {
+ color: #666;
+ }
+
+ .item .desc {
+ padding: 0 8px;
+ margin: 0;
+ }
+
+ .item .desc p {
+ margin: 0 0 10px 0;
+ }
+
+ .source_cont {
+ margin: 0;
+ padding: 0;
+ }
+
+ .source_link a {
+ background: #ffc300;
+ font-weight: 400;
+ font-size: .75em;
+ text-transform: uppercase;
+ color: #fff;
+ text-shadow: 1px 1px 0 #f4b700;
+
+ padding: 3px 8px;
+ border-radius: 2px;
+ transition: background .3s ease-in-out;
+ }
+ .source_link a:hover {
+ background: #FF7200;
+ text-shadow: none;
+ transition: background .3s ease-in-out;
+ }
+
+ .source {
+ display: none;
+ max-height: 600px;
+ overflow-y: scroll;
+ margin-bottom: 15px;
+ }
+
+ .source .codehilite {
+ margin: 0;
+ }
+
+ .desc h1, .desc h2, .desc h3 {
+ font-size: 100% !important;
+ }
+ .clear {
+ clear: both;
+ }
+
+ @media all and (max-width: 950px) {
+ #sidebar {
+ width: 35%;
+ }
+ #content {
+ width: 65%;
+ }
+ }
+ @media all and (max-width: 650px) {
+ #top {
+ display: none;
+ }
+ #sidebar {
+ float: none;
+ width: auto;
+ }
+ #content {
+ float: none;
+ width: auto;
+ padding: 30px;
+ }
+
+ #index ul {
+ padding: 0;
+ margin-bottom: 15px;
+ }
+ #index ul li {
+ display: inline-block;
+ margin-right: 30px;
+ }
+ #footer {
+ text-align: left;
+ }
+ #footer p {
+ display: block;
+ margin: inherit;
+ }
+ }
+
+ /*****************************/
+
+ </style>
+
+
+ <style type="text/css">
+
+/* ==========================================================================
+ EXAMPLE Media Queries for Responsive Design.
+ These examples override the primary ('mobile first') styles.
+ Modify as content requires.
+ ========================================================================== */
+
+@media only screen and (min-width: 35em) {
+ /* Style adjustments for viewports that meet the condition */
+}
+
+@media print,
+ (-o-min-device-pixel-ratio: 5/4),
+ (-webkit-min-device-pixel-ratio: 1.25),
+ (min-resolution: 120dpi) {
+ /* Style adjustments for high resolution devices */
+}
+
+/* ==========================================================================
+ Print styles.
+ Inlined to avoid required HTTP connection: h5bp.com/r
+ ========================================================================== */
+
+@media print {
+ * {
+ background: transparent !important;
+ color: #000 !important; /* Black prints faster: h5bp.com/s */
+ box-shadow: none !important;
+ text-shadow: none !important;
+ }
+
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ /*
+ * Don't show links for images, or javascript/internal links
+ */
+
+ .ir a:after,
+ a[href^="javascript:"]:after,
+ a[href^="#"]:after {
+ content: "";
+ }
+
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+
+ thead {
+ display: table-header-group; /* h5bp.com/t */
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ @page {
+ margin: 0.5cm;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+}
+
+ </style>
+
+ <script type="text/javascript">
+ function toggle(id, $link) {
+ $node = document.getElementById(id);
+ if (!$node)
+ return;
+ if (!$node.style.display || $node.style.display == 'none') {
+ $node.style.display = 'block';
+ $link.innerHTML = 'Hide source ≢';
+ } else {
+ $node.style.display = 'none';
+ $link.innerHTML = 'Show source ≡';
+ }
+ }
+ </script>
+</head>
+<body>
+<a href="#" id="top">Top</a>
+
+<div id="container">
+
+
+ <div id="sidebar">
+ <h1>Index</h1>
+ <ul id="index">
+
+
+ <li class="set"><h3><a href="#header-classes">Classes</a></h3>
+ <ul>
+ <li class="mono">
+ <span class="class_name"><a href="#pulsar.functions.function.Function">Function</a></span>
+
+
+ <ul>
+ <li class="mono"><a href="#pulsar.functions.function.Function.process">process</a></li>
+ </ul>
+
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+ </div>
+
+ <article id="content">
+
+
+
+
+
+
+ <header id="section-intro">
+ <h1 class="title"><span class="name">pulsar.functions.function</span> module</h1>
+ <p>function.py: This is the core interface of the function api.</p>
+<h1>The process method is called for every message of the input topic of the</h1>
+<h1>function. The incoming input bytes are deserialized using the serde.</h1>
+<h1>The process function can optionally emit an output</h1>
+
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.function', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.function" class="source">
+ <pre><code>#!/usr/bin/env python
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# -*- encoding: utf-8 -*-
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+"""function.py: This is the core interface of the function api.
+# The process method is called for every message of the input topic of the
+# function. The incoming input bytes are deserialized using the serde.
+# The process function can optionally emit an output
+"""
+from abc import abstractmethod
+
+class Function(object):
+ """Interface for Pulsar Function"""
+ @abstractmethod
+ def process(self, input, context):
+ """Process input message"""
+ pass
+</code></pre>
+ </div>
+
+ </header>
+
+ <section id="section-items">
+
+
+ <h2 class="section-title" id="header-classes">Classes</h2>
+
+ <div class="item">
+ <p id="pulsar.functions.function.Function" class="name">class <span class="ident">Function</span></p>
+
+
+ <div class="desc"><p>Interface for Pulsar Function</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.function.Function', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.function.Function" class="source">
+ <pre><code>class Function(object):
+ """Interface for Pulsar Function"""
+ @abstractmethod
+ def process(self, input, context):
+ """Process input message"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+
+ <div class="class">
+ <h3>Ancestors (in MRO)</h3>
+ <ul class="class_list">
+ <li><a href="#pulsar.functions.function.Function">Function</a></li>
+ <li>__builtin__.object</li>
+ </ul>
+ <h3>Methods</h3>
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.function.Function.process">
+ <p>def <span class="ident">process</span>(</p><p>self, input, context)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Process input message</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.function.Function.process', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.function.Function.process" class="source">
+ <pre><code>@abstractmethod
+def process(self, input, context):
+ """Process input message"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+ </div>
+ </div>
+
+ </section>
+
+ </article>
+ <div class="clear"> </div>
+ <footer id="footer">
+ <p>
+ Documentation generated by
+ <a href="https://github.com/BurntSushi/pdoc">pdoc 0.3.2</a>
+ </p>
+
+ <p>pdoc is in the public domain with the
+ <a href="http://unlicense.org">UNLICENSE</a></p>
+
+ <p>Design by <a href="http://nadh.in">Kailash Nadh</a></p>
+ </footer>
+</div>
+</body>
+</html>
diff --git a/content/api/python/functions/index.html b/content/api/python/functions/index.html
new file mode 100644
index 0000000..cfc53c8
--- /dev/null
+++ b/content/api/python/functions/index.html
@@ -0,0 +1,1075 @@
+<!doctype html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
+
+ <title>pulsar.functions API documentation</title>
+ <meta name="description" content="" />
+
+ <link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,300' rel='stylesheet' type='text/css'>
+
+ <style type="text/css">
+
+* {
+ box-sizing: border-box;
+}
+/*! normalize.css v1.1.1 | MIT License | git.io/normalize */
+
+/* ==========================================================================
+ HTML5 display definitions
+ ========================================================================== */
+
+/**
+ * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
+ */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section,
+summary {
+ display: block;
+}
+
+/**
+ * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
+ */
+
+audio,
+canvas,
+video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+}
+
+/**
+ * Prevent modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/**
+ * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
+ * Known issue: no IE 6 support.
+ */
+
+[hidden] {
+ display: none;
+}
+
+/* ==========================================================================
+ Base
+ ========================================================================== */
+
+/**
+ * 1. Prevent system color scheme's background color being used in Firefox, IE,
+ * and Opera.
+ * 2. Prevent system color scheme's text color being used in Firefox, IE, and
+ * Opera.
+ * 3. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
+ * `em` units.
+ * 4. Prevent iOS text size adjust after orientation change, without disabling
+ * user zoom.
+ */
+
+html {
+ background: #fff; /* 1 */
+ color: #000; /* 2 */
+ font-size: 100%; /* 3 */
+ -webkit-text-size-adjust: 100%; /* 4 */
+ -ms-text-size-adjust: 100%; /* 4 */
+}
+
+/**
+ * Address `font-family` inconsistency between `textarea` and other form
+ * elements.
+ */
+
+html,
+button,
+input,
+select,
+textarea {
+ font-family: sans-serif;
+}
+
+/**
+ * Address margins handled incorrectly in IE 6/7.
+ */
+
+body {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Links
+ ========================================================================== */
+
+/**
+ * Address `outline` inconsistency between Chrome and other browsers.
+ */
+
+a:focus {
+ outline: thin dotted;
+}
+
+/**
+ * Improve readability when focused and also mouse hovered in all browsers.
+ */
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+/* ==========================================================================
+ Typography
+ ========================================================================== */
+
+/**
+ * Address font sizes and margins set differently in IE 6/7.
+ * Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
+ * and Chrome.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+h2 {
+ font-size: 1.5em;
+ margin: 0.83em 0;
+}
+
+h3 {
+ font-size: 1.17em;
+ margin: 1em 0;
+}
+
+h4 {
+ font-size: 1em;
+ margin: 1.33em 0;
+}
+
+h5 {
+ font-size: 0.83em;
+ margin: 1.67em 0;
+}
+
+h6 {
+ font-size: 0.67em;
+ margin: 2.33em 0;
+}
+
+/**
+ * Address styling not present in IE 7/8/9, Safari 5, and Chrome.
+ */
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+/**
+ * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
+ */
+
+b,
+strong {
+ font-weight: bold;
+}
+
+blockquote {
+ margin: 1em 40px;
+}
+
+/**
+ * Address styling not present in Safari 5 and Chrome.
+ */
+
+dfn {
+ font-style: italic;
+}
+
+/**
+ * Address differences between Firefox and other browsers.
+ * Known issue: no IE 6/7 normalization.
+ */
+
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+
+/**
+ * Address styling not present in IE 6/7/8/9.
+ */
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+/**
+ * Address margins set differently in IE 6/7.
+ */
+
+p,
+pre {
+ margin: 1em 0;
+}
+
+/**
+ * Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
+ */
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, serif;
+ _font-family: 'courier new', monospace;
+ font-size: 1em;
+}
+
+/**
+ * Improve readability of pre-formatted text in all browsers.
+ */
+
+pre {
+ white-space: pre;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+/**
+ * Address CSS quotes not supported in IE 6/7.
+ */
+
+q {
+ quotes: none;
+}
+
+/**
+ * Address `quotes` property not supported in Safari 4.
+ */
+
+q:before,
+q:after {
+ content: '';
+ content: none;
+}
+
+/**
+ * Address inconsistent and variable font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+/* ==========================================================================
+ Lists
+ ========================================================================== */
+
+/**
+ * Address margins set differently in IE 6/7.
+ */
+
+dl,
+menu,
+ol,
+ul {
+ margin: 1em 0;
+}
+
+dd {
+ margin: 0 0 0 40px;
+}
+
+/**
+ * Address paddings set differently in IE 6/7.
+ */
+
+menu,
+ol,
+ul {
+ padding: 0 0 0 40px;
+}
+
+/**
+ * Correct list images handled incorrectly in IE 7.
+ */
+
+nav ul,
+nav ol {
+ list-style: none;
+ list-style-image: none;
+}
+
+/* ==========================================================================
+ Embedded content
+ ========================================================================== */
+
+/**
+ * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
+ * 2. Improve image quality when scaled in IE 7.
+ */
+
+img {
+ border: 0; /* 1 */
+ -ms-interpolation-mode: bicubic; /* 2 */
+}
+
+/**
+ * Correct overflow displayed oddly in IE 9.
+ */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* ==========================================================================
+ Figures
+ ========================================================================== */
+
+/**
+ * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
+ */
+
+figure {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Forms
+ ========================================================================== */
+
+/**
+ * Correct margin displayed oddly in IE 6/7.
+ */
+
+form {
+ margin: 0;
+}
+
+/**
+ * Define consistent border, margin, and padding.
+ */
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+/**
+ * 1. Correct color not being inherited in IE 6/7/8/9.
+ * 2. Correct text not wrapping in Firefox 3.
+ * 3. Correct alignment displayed oddly in IE 6/7.
+ */
+
+legend {
+ border: 0; /* 1 */
+ padding: 0;
+ white-space: normal; /* 2 */
+ *margin-left: -7px; /* 3 */
+}
+
+/**
+ * 1. Correct font size not being inherited in all browsers.
+ * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
+ * and Chrome.
+ * 3. Improve appearance and consistency in all browsers.
+ */
+
+button,
+input,
+select,
+textarea {
+ font-size: 100%; /* 1 */
+ margin: 0; /* 2 */
+ vertical-align: baseline; /* 3 */
+ *vertical-align: middle; /* 3 */
+}
+
+/**
+ * Address Firefox 3+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+
+button,
+input {
+ line-height: normal;
+}
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
+ * Correct `select` style inheritance in Firefox 4+ and Opera.
+ */
+
+button,
+select {
+ text-transform: none;
+}
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ * and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ * `input` and others.
+ * 4. Remove inner spacing in IE 7 without affecting normal text inputs.
+ * Known issue: inner spacing remains in IE 6.
+ */
+
+button,
+html input[type="button"], /* 1 */
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; /* 2 */
+ cursor: pointer; /* 3 */
+ *overflow: visible; /* 4 */
+}
+
+/**
+ * Re-set default cursor for disabled elements.
+ */
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+/**
+ * 1. Address box sizing set to content-box in IE 8/9.
+ * 2. Remove excess padding in IE 8/9.
+ * 3. Remove excess padding in IE 7.
+ * Known issue: excess padding remains in IE 6.
+ */
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+ *height: 13px; /* 3 */
+ *width: 13px; /* 3 */
+}
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
+ * (include `-moz` to future-proof).
+ */
+
+input[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box; /* 2 */
+ box-sizing: content-box;
+}
+
+/**
+ * Remove inner padding and search cancel button in Safari 5 and Chrome
+ * on OS X.
+ */
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * Remove inner padding and border in Firefox 3+.
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/**
+ * 1. Remove default vertical scrollbar in IE 6/7/8/9.
+ * 2. Improve readability and alignment in all browsers.
+ */
+
+textarea {
+ overflow: auto; /* 1 */
+ vertical-align: top; /* 2 */
+}
+
+/* ==========================================================================
+ Tables
+ ========================================================================== */
+
+/**
+ * Remove most spacing between table cells.
+ */
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+ </style>
+
+ <style type="text/css">
+
+ html, body {
+ margin: 0;
+ padding: 0;
+ min-height: 100%;
+ }
+ body {
+ background: #fff;
+ font-family: "Source Sans Pro", "Helvetica Neueue", Helvetica, sans;
+ font-weight: 300;
+ font-size: 16px;
+ line-height: 1.6em;
+ }
+ #content {
+ width: 70%;
+ max-width: 850px;
+ float: left;
+ padding: 30px 60px;
+ border-left: 1px solid #ddd;
+ }
+ #sidebar {
+ width: 25%;
+ float: left;
+ padding: 30px;
+ overflow: hidden;
+ }
+ #nav {
+ font-size: 130%;
+ margin: 0 0 15px 0;
+ }
+
+ #top {
+ display: block;
+ position: fixed;
+ bottom: 5px;
+ left: 5px;
+ font-size: .85em;
+ text-transform: uppercase;
+ }
+
+ #footer {
+ font-size: .75em;
+ padding: 5px 30px;
+ border-top: 1px solid #ddd;
+ text-align: right;
+ }
+ #footer p {
+ margin: 0 0 0 30px;
+ display: inline-block;
+ }
+
+ h1, h2, h3, h4, h5 {
+ font-weight: 300;
+ }
+ h1 {
+ font-size: 2.5em;
+ line-height: 1.1em;
+ margin: 0 0 .50em 0;
+ }
+
+ h2 {
+ font-size: 1.75em;
+ margin: 1em 0 .50em 0;
+ }
+
+ h3 {
+ margin: 25px 0 10px 0;
+ }
+
+ h4 {
+ margin: 0;
+ font-size: 105%;
+ }
+
+ a {
+ color: #058;
+ text-decoration: none;
+ transition: color .3s ease-in-out;
+ }
+
+ a:hover {
+ color: #e08524;
+ transition: color .3s ease-in-out;
+ }
+
+ pre, code, .mono, .name {
+ font-family: "Ubuntu Mono", "Cousine", "DejaVu Sans Mono", monospace;
+ }
+
+ .title .name {
+ font-weight: bold;
+ }
+ .section-title {
+ margin-top: 2em;
+ }
+ .ident {
+ color: #900;
+ }
+
+ code {
+ background: #f9f9f9;
+ }
+
+ pre {
+ background: #fefefe;
+ border: 1px solid #ddd;
+ box-shadow: 2px 2px 0 #f3f3f3;
+ margin: 0 30px;
+ padding: 15px 30px;
+ }
+
+ .codehilite {
+ margin: 0 30px 10px 30px;
+ }
+
+ .codehilite pre {
+ margin: 0;
+ }
+ .codehilite .err { background: #ff3300; color: #fff !important; }
+
+ table#module-list {
+ font-size: 110%;
+ }
+
+ table#module-list tr td:first-child {
+ padding-right: 10px;
+ white-space: nowrap;
+ }
+
+ table#module-list td {
+ vertical-align: top;
+ padding-bottom: 8px;
+ }
+
+ table#module-list td p {
+ margin: 0 0 7px 0;
+ }
+
+ .def {
+ display: table;
+ }
+
+ .def p {
+ display: table-cell;
+ vertical-align: top;
+ text-align: left;
+ }
+
+ .def p:first-child {
+ white-space: nowrap;
+ }
+
+ .def p:last-child {
+ width: 100%;
+ }
+
+
+ #index {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+ }
+ ul#index .class_name {
+ /* font-size: 110%; */
+ font-weight: bold;
+ }
+ #index ul {
+ margin: 0;
+ }
+
+ .item {
+ margin: 0 0 15px 0;
+ }
+
+ .item .class {
+ margin: 0 0 25px 30px;
+ }
+
+ .item .class ul.class_list {
+ margin: 0 0 20px 0;
+ }
+
+ .item .name {
+ background: #fafafa;
+ margin: 0;
+ font-weight: bold;
+ padding: 5px 10px;
+ border-radius: 3px;
+ display: inline-block;
+ min-width: 40%;
+ }
+ .item .name:hover {
+ background: #f6f6f6;
+ }
+
+ .item .empty_desc {
+ margin: 0 0 5px 0;
+ padding: 0;
+ }
+
+ .item .inheritance {
+ margin: 3px 0 0 30px;
+ }
+
+ .item .inherited {
+ color: #666;
+ }
+
+ .item .desc {
+ padding: 0 8px;
+ margin: 0;
+ }
+
+ .item .desc p {
+ margin: 0 0 10px 0;
+ }
+
+ .source_cont {
+ margin: 0;
+ padding: 0;
+ }
+
+ .source_link a {
+ background: #ffc300;
+ font-weight: 400;
+ font-size: .75em;
+ text-transform: uppercase;
+ color: #fff;
+ text-shadow: 1px 1px 0 #f4b700;
+
+ padding: 3px 8px;
+ border-radius: 2px;
+ transition: background .3s ease-in-out;
+ }
+ .source_link a:hover {
+ background: #FF7200;
+ text-shadow: none;
+ transition: background .3s ease-in-out;
+ }
+
+ .source {
+ display: none;
+ max-height: 600px;
+ overflow-y: scroll;
+ margin-bottom: 15px;
+ }
+
+ .source .codehilite {
+ margin: 0;
+ }
+
+ .desc h1, .desc h2, .desc h3 {
+ font-size: 100% !important;
+ }
+ .clear {
+ clear: both;
+ }
+
+ @media all and (max-width: 950px) {
+ #sidebar {
+ width: 35%;
+ }
+ #content {
+ width: 65%;
+ }
+ }
+ @media all and (max-width: 650px) {
+ #top {
+ display: none;
+ }
+ #sidebar {
+ float: none;
+ width: auto;
+ }
+ #content {
+ float: none;
+ width: auto;
+ padding: 30px;
+ }
+
+ #index ul {
+ padding: 0;
+ margin-bottom: 15px;
+ }
+ #index ul li {
+ display: inline-block;
+ margin-right: 30px;
+ }
+ #footer {
+ text-align: left;
+ }
+ #footer p {
+ display: block;
+ margin: inherit;
+ }
+ }
+
+ /*****************************/
+
+ </style>
+
+
+ <style type="text/css">
+
+/* ==========================================================================
+ EXAMPLE Media Queries for Responsive Design.
+ These examples override the primary ('mobile first') styles.
+ Modify as content requires.
+ ========================================================================== */
+
+@media only screen and (min-width: 35em) {
+ /* Style adjustments for viewports that meet the condition */
+}
+
+@media print,
+ (-o-min-device-pixel-ratio: 5/4),
+ (-webkit-min-device-pixel-ratio: 1.25),
+ (min-resolution: 120dpi) {
+ /* Style adjustments for high resolution devices */
+}
+
+/* ==========================================================================
+ Print styles.
+ Inlined to avoid required HTTP connection: h5bp.com/r
+ ========================================================================== */
+
+@media print {
+ * {
+ background: transparent !important;
+ color: #000 !important; /* Black prints faster: h5bp.com/s */
+ box-shadow: none !important;
+ text-shadow: none !important;
+ }
+
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ /*
+ * Don't show links for images, or javascript/internal links
+ */
+
+ .ir a:after,
+ a[href^="javascript:"]:after,
+ a[href^="#"]:after {
+ content: "";
+ }
+
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+
+ thead {
+ display: table-header-group; /* h5bp.com/t */
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ @page {
+ margin: 0.5cm;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+}
+
+ </style>
+
+ <script type="text/javascript">
+ function toggle(id, $link) {
+ $node = document.getElementById(id);
+ if (!$node)
+ return;
+ if (!$node.style.display || $node.style.display == 'none') {
+ $node.style.display = 'block';
+ $link.innerHTML = 'Hide source ≢';
+ } else {
+ $node.style.display = 'none';
+ $link.innerHTML = 'Show source ≡';
+ }
+ }
+ </script>
+</head>
+<body>
+<a href="#" id="top">Top</a>
+
+<div id="container">
+
+
+ <div id="sidebar">
+ <h1>Index</h1>
+ <ul id="index">
+
+
+
+ <li class="set"><h3><a href="#header-submodules">Sub-modules</a></h3>
+ <ul>
+ <li class="mono"><a href="context.m.html">pulsar.functions.context</a></li>
+ <li class="mono"><a href="function.m.html">pulsar.functions.function</a></li>
+ <li class="mono"><a href="serde.m.html">pulsar.functions.serde</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+
+ <article id="content">
+
+
+
+
+
+
+ <header id="section-intro">
+ <h1 class="title"><span class="name">pulsar.functions</span> module</h1>
+
+
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions" class="source">
+ <pre><code>#!/usr/bin/env python
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# -*- encoding: utf-8 -*-
+</code></pre>
+ </div>
+
+ </header>
+
+ <section id="section-items">
+
+
+
+ <h2 class="section-title" id="header-submodules">Sub-modules</h2>
+ <div class="item">
+ <p class="name"><a href="context.m.html">pulsar.functions.context</a></p>
+
+
+ <div class="desc"><p>context.py: Context defines context information available during</p>
+<h1>processing of a request.</h1></div>
+
+ </div>
+ <div class="item">
+ <p class="name"><a href="function.m.html">pulsar.functions.function</a></p>
+
+
+ <div class="desc"><p>function.py: This is the core interface of the function api.</p>
+<h1>The process method is called for every message of the input topic of the</h1>
+<h1>function. The incoming input bytes are deserialized using the serde.</h1>
+<h1>The process function can optionally emit an output</h1></div>
+
+ </div>
+ <div class="item">
+ <p class="name"><a href="serde.m.html">pulsar.functions.serde</a></p>
+
+
+ <div class="desc"><p>serde.py: SerDe defines the interface for serialization/deserialization.</p>
+<h1>Everytime a message is read from pulsar topic, the serde is invoked to</h1>
+<h1>serialize the bytes into an object before invoking the process method.</h1>
+<h1>Anytime a python object needs to be written back to pulsar, it is</h1>
+<h1>serialized ...</h1></div>
+
+ </div>
+ </section>
+
+ </article>
+ <div class="clear"> </div>
+ <footer id="footer">
+ <p>
+ Documentation generated by
+ <a href="https://github.com/BurntSushi/pdoc">pdoc 0.3.2</a>
+ </p>
+
+ <p>pdoc is in the public domain with the
+ <a href="http://unlicense.org">UNLICENSE</a></p>
+
+ <p>Design by <a href="http://nadh.in">Kailash Nadh</a></p>
+ </footer>
+</div>
+</body>
+</html>
diff --git a/content/api/python/functions/serde.m.html b/content/api/python/functions/serde.m.html
new file mode 100644
index 0000000..c5619b4
--- /dev/null
+++ b/content/api/python/functions/serde.m.html
@@ -0,0 +1,1375 @@
+<!doctype html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
+
+ <title>pulsar.functions.serde API documentation</title>
+ <meta name="description" content="serde.py: SerDe defines the interface for serialization/deserialization.
+# Everytime a message is re..." />
+
+ <link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,300' rel='stylesheet' type='text/css'>
+
+ <style type="text/css">
+
+* {
+ box-sizing: border-box;
+}
+/*! normalize.css v1.1.1 | MIT License | git.io/normalize */
+
+/* ==========================================================================
+ HTML5 display definitions
+ ========================================================================== */
+
+/**
+ * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
+ */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section,
+summary {
+ display: block;
+}
+
+/**
+ * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
+ */
+
+audio,
+canvas,
+video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+}
+
+/**
+ * Prevent modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/**
+ * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
+ * Known issue: no IE 6 support.
+ */
+
+[hidden] {
+ display: none;
+}
+
+/* ==========================================================================
+ Base
+ ========================================================================== */
+
+/**
+ * 1. Prevent system color scheme's background color being used in Firefox, IE,
+ * and Opera.
+ * 2. Prevent system color scheme's text color being used in Firefox, IE, and
+ * Opera.
+ * 3. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
+ * `em` units.
+ * 4. Prevent iOS text size adjust after orientation change, without disabling
+ * user zoom.
+ */
+
+html {
+ background: #fff; /* 1 */
+ color: #000; /* 2 */
+ font-size: 100%; /* 3 */
+ -webkit-text-size-adjust: 100%; /* 4 */
+ -ms-text-size-adjust: 100%; /* 4 */
+}
+
+/**
+ * Address `font-family` inconsistency between `textarea` and other form
+ * elements.
+ */
+
+html,
+button,
+input,
+select,
+textarea {
+ font-family: sans-serif;
+}
+
+/**
+ * Address margins handled incorrectly in IE 6/7.
+ */
+
+body {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Links
+ ========================================================================== */
+
+/**
+ * Address `outline` inconsistency between Chrome and other browsers.
+ */
+
+a:focus {
+ outline: thin dotted;
+}
+
+/**
+ * Improve readability when focused and also mouse hovered in all browsers.
+ */
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+/* ==========================================================================
+ Typography
+ ========================================================================== */
+
+/**
+ * Address font sizes and margins set differently in IE 6/7.
+ * Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
+ * and Chrome.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+h2 {
+ font-size: 1.5em;
+ margin: 0.83em 0;
+}
+
+h3 {
+ font-size: 1.17em;
+ margin: 1em 0;
+}
+
+h4 {
+ font-size: 1em;
+ margin: 1.33em 0;
+}
+
+h5 {
+ font-size: 0.83em;
+ margin: 1.67em 0;
+}
+
+h6 {
+ font-size: 0.67em;
+ margin: 2.33em 0;
+}
+
+/**
+ * Address styling not present in IE 7/8/9, Safari 5, and Chrome.
+ */
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+/**
+ * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
+ */
+
+b,
+strong {
+ font-weight: bold;
+}
+
+blockquote {
+ margin: 1em 40px;
+}
+
+/**
+ * Address styling not present in Safari 5 and Chrome.
+ */
+
+dfn {
+ font-style: italic;
+}
+
+/**
+ * Address differences between Firefox and other browsers.
+ * Known issue: no IE 6/7 normalization.
+ */
+
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+
+/**
+ * Address styling not present in IE 6/7/8/9.
+ */
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+/**
+ * Address margins set differently in IE 6/7.
+ */
+
+p,
+pre {
+ margin: 1em 0;
+}
+
+/**
+ * Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
+ */
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, serif;
+ _font-family: 'courier new', monospace;
+ font-size: 1em;
+}
+
+/**
+ * Improve readability of pre-formatted text in all browsers.
+ */
+
+pre {
+ white-space: pre;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+/**
+ * Address CSS quotes not supported in IE 6/7.
+ */
+
+q {
+ quotes: none;
+}
+
+/**
+ * Address `quotes` property not supported in Safari 4.
+ */
+
+q:before,
+q:after {
+ content: '';
+ content: none;
+}
+
+/**
+ * Address inconsistent and variable font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+/* ==========================================================================
+ Lists
+ ========================================================================== */
+
+/**
+ * Address margins set differently in IE 6/7.
+ */
+
+dl,
+menu,
+ol,
+ul {
+ margin: 1em 0;
+}
+
+dd {
+ margin: 0 0 0 40px;
+}
+
+/**
+ * Address paddings set differently in IE 6/7.
+ */
+
+menu,
+ol,
+ul {
+ padding: 0 0 0 40px;
+}
+
+/**
+ * Correct list images handled incorrectly in IE 7.
+ */
+
+nav ul,
+nav ol {
+ list-style: none;
+ list-style-image: none;
+}
+
+/* ==========================================================================
+ Embedded content
+ ========================================================================== */
+
+/**
+ * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
+ * 2. Improve image quality when scaled in IE 7.
+ */
+
+img {
+ border: 0; /* 1 */
+ -ms-interpolation-mode: bicubic; /* 2 */
+}
+
+/**
+ * Correct overflow displayed oddly in IE 9.
+ */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* ==========================================================================
+ Figures
+ ========================================================================== */
+
+/**
+ * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
+ */
+
+figure {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Forms
+ ========================================================================== */
+
+/**
+ * Correct margin displayed oddly in IE 6/7.
+ */
+
+form {
+ margin: 0;
+}
+
+/**
+ * Define consistent border, margin, and padding.
+ */
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+/**
+ * 1. Correct color not being inherited in IE 6/7/8/9.
+ * 2. Correct text not wrapping in Firefox 3.
+ * 3. Correct alignment displayed oddly in IE 6/7.
+ */
+
+legend {
+ border: 0; /* 1 */
+ padding: 0;
+ white-space: normal; /* 2 */
+ *margin-left: -7px; /* 3 */
+}
+
+/**
+ * 1. Correct font size not being inherited in all browsers.
+ * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
+ * and Chrome.
+ * 3. Improve appearance and consistency in all browsers.
+ */
+
+button,
+input,
+select,
+textarea {
+ font-size: 100%; /* 1 */
+ margin: 0; /* 2 */
+ vertical-align: baseline; /* 3 */
+ *vertical-align: middle; /* 3 */
+}
+
+/**
+ * Address Firefox 3+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+
+button,
+input {
+ line-height: normal;
+}
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
+ * Correct `select` style inheritance in Firefox 4+ and Opera.
+ */
+
+button,
+select {
+ text-transform: none;
+}
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ * and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ * `input` and others.
+ * 4. Remove inner spacing in IE 7 without affecting normal text inputs.
+ * Known issue: inner spacing remains in IE 6.
+ */
+
+button,
+html input[type="button"], /* 1 */
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; /* 2 */
+ cursor: pointer; /* 3 */
+ *overflow: visible; /* 4 */
+}
+
+/**
+ * Re-set default cursor for disabled elements.
+ */
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+/**
+ * 1. Address box sizing set to content-box in IE 8/9.
+ * 2. Remove excess padding in IE 8/9.
+ * 3. Remove excess padding in IE 7.
+ * Known issue: excess padding remains in IE 6.
+ */
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+ *height: 13px; /* 3 */
+ *width: 13px; /* 3 */
+}
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
+ * (include `-moz` to future-proof).
+ */
+
+input[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box; /* 2 */
+ box-sizing: content-box;
+}
+
+/**
+ * Remove inner padding and search cancel button in Safari 5 and Chrome
+ * on OS X.
+ */
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * Remove inner padding and border in Firefox 3+.
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/**
+ * 1. Remove default vertical scrollbar in IE 6/7/8/9.
+ * 2. Improve readability and alignment in all browsers.
+ */
+
+textarea {
+ overflow: auto; /* 1 */
+ vertical-align: top; /* 2 */
+}
+
+/* ==========================================================================
+ Tables
+ ========================================================================== */
+
+/**
+ * Remove most spacing between table cells.
+ */
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+ </style>
+
+ <style type="text/css">
+
+ html, body {
+ margin: 0;
+ padding: 0;
+ min-height: 100%;
+ }
+ body {
+ background: #fff;
+ font-family: "Source Sans Pro", "Helvetica Neueue", Helvetica, sans;
+ font-weight: 300;
+ font-size: 16px;
+ line-height: 1.6em;
+ }
+ #content {
+ width: 70%;
+ max-width: 850px;
+ float: left;
+ padding: 30px 60px;
+ border-left: 1px solid #ddd;
+ }
+ #sidebar {
+ width: 25%;
+ float: left;
+ padding: 30px;
+ overflow: hidden;
+ }
+ #nav {
+ font-size: 130%;
+ margin: 0 0 15px 0;
+ }
+
+ #top {
+ display: block;
+ position: fixed;
+ bottom: 5px;
+ left: 5px;
+ font-size: .85em;
+ text-transform: uppercase;
+ }
+
+ #footer {
+ font-size: .75em;
+ padding: 5px 30px;
+ border-top: 1px solid #ddd;
+ text-align: right;
+ }
+ #footer p {
+ margin: 0 0 0 30px;
+ display: inline-block;
+ }
+
+ h1, h2, h3, h4, h5 {
+ font-weight: 300;
+ }
+ h1 {
+ font-size: 2.5em;
+ line-height: 1.1em;
+ margin: 0 0 .50em 0;
+ }
+
+ h2 {
+ font-size: 1.75em;
+ margin: 1em 0 .50em 0;
+ }
+
+ h3 {
+ margin: 25px 0 10px 0;
+ }
+
+ h4 {
+ margin: 0;
+ font-size: 105%;
+ }
+
+ a {
+ color: #058;
+ text-decoration: none;
+ transition: color .3s ease-in-out;
+ }
+
+ a:hover {
+ color: #e08524;
+ transition: color .3s ease-in-out;
+ }
+
+ pre, code, .mono, .name {
+ font-family: "Ubuntu Mono", "Cousine", "DejaVu Sans Mono", monospace;
+ }
+
+ .title .name {
+ font-weight: bold;
+ }
+ .section-title {
+ margin-top: 2em;
+ }
+ .ident {
+ color: #900;
+ }
+
+ code {
+ background: #f9f9f9;
+ }
+
+ pre {
+ background: #fefefe;
+ border: 1px solid #ddd;
+ box-shadow: 2px 2px 0 #f3f3f3;
+ margin: 0 30px;
+ padding: 15px 30px;
+ }
+
+ .codehilite {
+ margin: 0 30px 10px 30px;
+ }
+
+ .codehilite pre {
+ margin: 0;
+ }
+ .codehilite .err { background: #ff3300; color: #fff !important; }
+
+ table#module-list {
+ font-size: 110%;
+ }
+
+ table#module-list tr td:first-child {
+ padding-right: 10px;
+ white-space: nowrap;
+ }
+
+ table#module-list td {
+ vertical-align: top;
+ padding-bottom: 8px;
+ }
+
+ table#module-list td p {
+ margin: 0 0 7px 0;
+ }
+
+ .def {
+ display: table;
+ }
+
+ .def p {
+ display: table-cell;
+ vertical-align: top;
+ text-align: left;
+ }
+
+ .def p:first-child {
+ white-space: nowrap;
+ }
+
+ .def p:last-child {
+ width: 100%;
+ }
+
+
+ #index {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+ }
+ ul#index .class_name {
+ /* font-size: 110%; */
+ font-weight: bold;
+ }
+ #index ul {
+ margin: 0;
+ }
+
+ .item {
+ margin: 0 0 15px 0;
+ }
+
+ .item .class {
+ margin: 0 0 25px 30px;
+ }
+
+ .item .class ul.class_list {
+ margin: 0 0 20px 0;
+ }
+
+ .item .name {
+ background: #fafafa;
+ margin: 0;
+ font-weight: bold;
+ padding: 5px 10px;
+ border-radius: 3px;
+ display: inline-block;
+ min-width: 40%;
+ }
+ .item .name:hover {
+ background: #f6f6f6;
+ }
+
+ .item .empty_desc {
+ margin: 0 0 5px 0;
+ padding: 0;
+ }
+
+ .item .inheritance {
+ margin: 3px 0 0 30px;
+ }
+
+ .item .inherited {
+ color: #666;
+ }
+
+ .item .desc {
+ padding: 0 8px;
+ margin: 0;
+ }
+
+ .item .desc p {
+ margin: 0 0 10px 0;
+ }
+
+ .source_cont {
+ margin: 0;
+ padding: 0;
+ }
+
+ .source_link a {
+ background: #ffc300;
+ font-weight: 400;
+ font-size: .75em;
+ text-transform: uppercase;
+ color: #fff;
+ text-shadow: 1px 1px 0 #f4b700;
+
+ padding: 3px 8px;
+ border-radius: 2px;
+ transition: background .3s ease-in-out;
+ }
+ .source_link a:hover {
+ background: #FF7200;
+ text-shadow: none;
+ transition: background .3s ease-in-out;
+ }
+
+ .source {
+ display: none;
+ max-height: 600px;
+ overflow-y: scroll;
+ margin-bottom: 15px;
+ }
+
+ .source .codehilite {
+ margin: 0;
+ }
+
+ .desc h1, .desc h2, .desc h3 {
+ font-size: 100% !important;
+ }
+ .clear {
+ clear: both;
+ }
+
+ @media all and (max-width: 950px) {
+ #sidebar {
+ width: 35%;
+ }
+ #content {
+ width: 65%;
+ }
+ }
+ @media all and (max-width: 650px) {
+ #top {
+ display: none;
+ }
+ #sidebar {
+ float: none;
+ width: auto;
+ }
+ #content {
+ float: none;
+ width: auto;
+ padding: 30px;
+ }
+
+ #index ul {
+ padding: 0;
+ margin-bottom: 15px;
+ }
+ #index ul li {
+ display: inline-block;
+ margin-right: 30px;
+ }
+ #footer {
+ text-align: left;
+ }
+ #footer p {
+ display: block;
+ margin: inherit;
+ }
+ }
+
+ /*****************************/
+
+ </style>
+
+
+ <style type="text/css">
+
+/* ==========================================================================
+ EXAMPLE Media Queries for Responsive Design.
+ These examples override the primary ('mobile first') styles.
+ Modify as content requires.
+ ========================================================================== */
+
+@media only screen and (min-width: 35em) {
+ /* Style adjustments for viewports that meet the condition */
+}
+
+@media print,
+ (-o-min-device-pixel-ratio: 5/4),
+ (-webkit-min-device-pixel-ratio: 1.25),
+ (min-resolution: 120dpi) {
+ /* Style adjustments for high resolution devices */
+}
+
+/* ==========================================================================
+ Print styles.
+ Inlined to avoid required HTTP connection: h5bp.com/r
+ ========================================================================== */
+
+@media print {
+ * {
+ background: transparent !important;
+ color: #000 !important; /* Black prints faster: h5bp.com/s */
+ box-shadow: none !important;
+ text-shadow: none !important;
+ }
+
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ /*
+ * Don't show links for images, or javascript/internal links
+ */
+
+ .ir a:after,
+ a[href^="javascript:"]:after,
+ a[href^="#"]:after {
+ content: "";
+ }
+
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+
+ thead {
+ display: table-header-group; /* h5bp.com/t */
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ @page {
+ margin: 0.5cm;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+}
+
+ </style>
+
+ <script type="text/javascript">
+ function toggle(id, $link) {
+ $node = document.getElementById(id);
+ if (!$node)
+ return;
+ if (!$node.style.display || $node.style.display == 'none') {
+ $node.style.display = 'block';
+ $link.innerHTML = 'Hide source ≢';
+ } else {
+ $node.style.display = 'none';
+ $link.innerHTML = 'Show source ≡';
+ }
+ }
+ </script>
+</head>
+<body>
+<a href="#" id="top">Top</a>
+
+<div id="container">
+
+
+ <div id="sidebar">
+ <h1>Index</h1>
+ <ul id="index">
+
+
+ <li class="set"><h3><a href="#header-classes">Classes</a></h3>
+ <ul>
+ <li class="mono">
+ <span class="class_name"><a href="#pulsar.functions.serde.IdentitySerDe">IdentitySerDe</a></span>
+
+
+ <ul>
+ <li class="mono"><a href="#pulsar.functions.serde.IdentitySerDe.deserialize">deserialize</a></li>
+ <li class="mono"><a href="#pulsar.functions.serde.IdentitySerDe.serialize">serialize</a></li>
+ </ul>
+
+ </li>
+ <li class="mono">
+ <span class="class_name"><a href="#pulsar.functions.serde.PickleSerDe">PickleSerDe</a></span>
+
+
+ <ul>
+ <li class="mono"><a href="#pulsar.functions.serde.PickleSerDe.deserialize">deserialize</a></li>
+ <li class="mono"><a href="#pulsar.functions.serde.PickleSerDe.serialize">serialize</a></li>
+ </ul>
+
+ </li>
+ <li class="mono">
+ <span class="class_name"><a href="#pulsar.functions.serde.SerDe">SerDe</a></span>
+
+
+ <ul>
+ <li class="mono"><a href="#pulsar.functions.serde.SerDe.deserialize">deserialize</a></li>
+ <li class="mono"><a href="#pulsar.functions.serde.SerDe.serialize">serialize</a></li>
+ </ul>
+
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+ </div>
+
+ <article id="content">
+
+
+
+
+
+
+ <header id="section-intro">
+ <h1 class="title"><span class="name">pulsar.functions.serde</span> module</h1>
+ <p>serde.py: SerDe defines the interface for serialization/deserialization.</p>
+<h1>Everytime a message is read from pulsar topic, the serde is invoked to</h1>
+<h1>serialize the bytes into an object before invoking the process method.</h1>
+<h1>Anytime a python object needs to be written back to pulsar, it is</h1>
+<h1>serialized into bytes before writing.</h1>
+
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.serde', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.serde" class="source">
+ <pre><code>#!/usr/bin/env python
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# -*- encoding: utf-8 -*-
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+"""serde.py: SerDe defines the interface for serialization/deserialization.
+# Everytime a message is read from pulsar topic, the serde is invoked to
+# serialize the bytes into an object before invoking the process method.
+# Anytime a python object needs to be written back to pulsar, it is
+# serialized into bytes before writing.
+"""
+from abc import abstractmethod
+
+import pickle
+
+class SerDe(object):
+ """Interface for Serialization/Deserialization"""
+ @abstractmethod
+ def serialize(self, input):
+ """Serialize input message into bytes"""
+ pass
+
+ @abstractmethod
+ def deserialize(self, input_bytes):
+ """Serialize input_bytes into an object"""
+ pass
+
+class PickleSerDe(SerDe):
+ """Pickle based serializer"""
+ def serialize(self, input):
+ return pickle.dumps(input)
+
+ def deserialize(self, input_bytes):
+ return pickle.loads(input_bytes)
+
+class IdentitySerDe(SerDe):
+ """Pickle based serializer"""
+ def serialize(self, input):
+ return input
+
+ def deserialize(self, input_bytes):
+ return input_bytes
+</code></pre>
+ </div>
+
+ </header>
+
+ <section id="section-items">
+
+
+ <h2 class="section-title" id="header-classes">Classes</h2>
+
+ <div class="item">
+ <p id="pulsar.functions.serde.IdentitySerDe" class="name">class <span class="ident">IdentitySerDe</span></p>
+
+
+ <div class="desc"><p>Pickle based serializer</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.serde.IdentitySerDe', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.serde.IdentitySerDe" class="source">
+ <pre><code>class IdentitySerDe(SerDe):
+ """Pickle based serializer"""
+ def serialize(self, input):
+ return input
+
+ def deserialize(self, input_bytes):
+ return input_bytes
+</code></pre>
+ </div>
+</div>
+
+
+ <div class="class">
+ <h3>Ancestors (in MRO)</h3>
+ <ul class="class_list">
+ <li><a href="#pulsar.functions.serde.IdentitySerDe">IdentitySerDe</a></li>
+ <li><a href="#pulsar.functions.serde.SerDe">SerDe</a></li>
+ <li>__builtin__.object</li>
+ </ul>
+ <h3>Methods</h3>
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.serde.IdentitySerDe.deserialize">
+ <p>def <span class="ident">deserialize</span>(</p><p>self, input_bytes)</p>
+ </div>
+
+ <p class="inheritance">
+ <strong>Inheritance:</strong>
+ <code><a href="#pulsar.functions.serde.SerDe">SerDe</a></code>.<code><a href="#pulsar.functions.serde.SerDe.deserialize">deserialize</a></code>
+ </p>
+
+
+
+ <div class="desc inherited"><p>Serialize input_bytes into an object</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.serde.IdentitySerDe.deserialize', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.serde.IdentitySerDe.deserialize" class="source">
+ <pre><code>def deserialize(self, input_bytes):
+ return input_bytes
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.serde.IdentitySerDe.serialize">
+ <p>def <span class="ident">serialize</span>(</p><p>self, input)</p>
+ </div>
+
+ <p class="inheritance">
+ <strong>Inheritance:</strong>
+ <code><a href="#pulsar.functions.serde.SerDe">SerDe</a></code>.<code><a href="#pulsar.functions.serde.SerDe.serialize">serialize</a></code>
+ </p>
+
+
+
+ <div class="desc inherited"><p>Serialize input message into bytes</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.serde.IdentitySerDe.serialize', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.serde.IdentitySerDe.serialize" class="source">
+ <pre><code>def serialize(self, input):
+ return input
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+ </div>
+ </div>
+
+ <div class="item">
+ <p id="pulsar.functions.serde.PickleSerDe" class="name">class <span class="ident">PickleSerDe</span></p>
+
+
+ <div class="desc"><p>Pickle based serializer</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.serde.PickleSerDe', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.serde.PickleSerDe" class="source">
+ <pre><code>class PickleSerDe(SerDe):
+ """Pickle based serializer"""
+ def serialize(self, input):
+ return pickle.dumps(input)
+
+ def deserialize(self, input_bytes):
+ return pickle.loads(input_bytes)
+</code></pre>
+ </div>
+</div>
+
+
+ <div class="class">
+ <h3>Ancestors (in MRO)</h3>
+ <ul class="class_list">
+ <li><a href="#pulsar.functions.serde.PickleSerDe">PickleSerDe</a></li>
+ <li><a href="#pulsar.functions.serde.SerDe">SerDe</a></li>
+ <li>__builtin__.object</li>
+ </ul>
+ <h3>Methods</h3>
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.serde.PickleSerDe.deserialize">
+ <p>def <span class="ident">deserialize</span>(</p><p>self, input_bytes)</p>
+ </div>
+
+ <p class="inheritance">
+ <strong>Inheritance:</strong>
+ <code><a href="#pulsar.functions.serde.SerDe">SerDe</a></code>.<code><a href="#pulsar.functions.serde.SerDe.deserialize">deserialize</a></code>
+ </p>
+
+
+
+ <div class="desc inherited"><p>Serialize input_bytes into an object</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.serde.PickleSerDe.deserialize', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.serde.PickleSerDe.deserialize" class="source">
+ <pre><code>def deserialize(self, input_bytes):
+ return pickle.loads(input_bytes)
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.serde.PickleSerDe.serialize">
+ <p>def <span class="ident">serialize</span>(</p><p>self, input)</p>
+ </div>
+
+ <p class="inheritance">
+ <strong>Inheritance:</strong>
+ <code><a href="#pulsar.functions.serde.SerDe">SerDe</a></code>.<code><a href="#pulsar.functions.serde.SerDe.serialize">serialize</a></code>
+ </p>
+
+
+
+ <div class="desc inherited"><p>Serialize input message into bytes</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.serde.PickleSerDe.serialize', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.serde.PickleSerDe.serialize" class="source">
+ <pre><code>def serialize(self, input):
+ return pickle.dumps(input)
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+ </div>
+ </div>
+
+ <div class="item">
+ <p id="pulsar.functions.serde.SerDe" class="name">class <span class="ident">SerDe</span></p>
+
+
+ <div class="desc"><p>Interface for Serialization/Deserialization</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.serde.SerDe', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.serde.SerDe" class="source">
+ <pre><code>class SerDe(object):
+ """Interface for Serialization/Deserialization"""
+ @abstractmethod
+ def serialize(self, input):
+ """Serialize input message into bytes"""
+ pass
+
+ @abstractmethod
+ def deserialize(self, input_bytes):
+ """Serialize input_bytes into an object"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+
+ <div class="class">
+ <h3>Ancestors (in MRO)</h3>
+ <ul class="class_list">
+ <li><a href="#pulsar.functions.serde.SerDe">SerDe</a></li>
+ <li>__builtin__.object</li>
+ </ul>
+ <h3>Methods</h3>
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.serde.SerDe.deserialize">
+ <p>def <span class="ident">deserialize</span>(</p><p>self, input_bytes)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Serialize input_bytes into an object</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.serde.SerDe.deserialize', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.serde.SerDe.deserialize" class="source">
+ <pre><code>@abstractmethod
+def deserialize(self, input_bytes):
+ """Serialize input_bytes into an object"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="pulsar.functions.serde.SerDe.serialize">
+ <p>def <span class="ident">serialize</span>(</p><p>self, input)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Serialize input message into bytes</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.serde.SerDe.serialize', this);">Show source ≡</a></p>
+ <div id="source-pulsar.functions.serde.SerDe.serialize" class="source">
+ <pre><code>@abstractmethod
+def serialize(self, input):
+ """Serialize input message into bytes"""
+ pass
+</code></pre>
+ </div>
+</div>
+
+ </div>
+
+ </div>
+ </div>
+
+ </section>
+
+ </article>
+ <div class="clear"> </div>
+ <footer id="footer">
+ <p>
+ Documentation generated by
+ <a href="https://github.com/BurntSushi/pdoc">pdoc 0.3.2</a>
+ </p>
+
+ <p>pdoc is in the public domain with the
+ <a href="http://unlicense.org">UNLICENSE</a></p>
+
+ <p>Design by <a href="http://nadh.in">Kailash Nadh</a></p>
+ </footer>
+</div>
+</body>
+</html>
diff --git a/content/api/python/index.html b/content/api/python/index.html
index 52faae9..69faa9d 100644
--- a/content/api/python/index.html
+++ b/content/api/python/index.html
@@ -1065,6 +1065,11 @@ table {
</ul>
</li>
+ <li class="set"><h3><a href="#header-submodules">Sub-modules</a></h3>
+ <ul>
+ <li class="mono"><a href="functions/index.html">pulsar.functions</a></li>
+ </ul>
+ </li>
</ul>
</div>
@@ -1430,7 +1435,8 @@ class Client:
batching_enabled=False,
batching_max_messages=1000,
batching_max_allowed_size_in_bytes=128*1024,
- batching_max_publish_delay_ms=10
+ batching_max_publish_delay_ms=10,
+ message_routing_mode=PartitionsRoutingMode.RoundRobinDistribution
):
"""
Create a new producer on a given topic.
@@ -1465,7 +1471,8 @@ class Client:
* `block_if_queue_full`: Set whether `send_async` operations should
block when the outgoing message queue is full.
* `message_routing_mode`:
- Set the message routing mode for the partitioned producer.
+ Set the message routing mode for the partitioned producer. Default is `PartitionsRoutingMode.RoundRobinDistribution`,
+ other option is `PartitionsRoutingMode.UseSinglePartition`
"""
_check_type(str, topic, 'topic')
_check_type_or_none(str, producer_name, 'producer_name')
@@ -1488,6 +1495,7 @@ class Client:
conf.batching_max_messages(batching_max_messages)
conf.batching_max_allowed_size_in_bytes(batching_max_allowed_size_in_bytes)
conf.batching_max_publish_delay_ms(batching_max_publish_delay_ms)
+ conf.partitions_routing_mode(message_routing_mode)
if producer_name:
conf.producer_name(producer_name)
if initial_sequence_id:
@@ -2163,7 +2171,8 @@ producers and consumers.</p></div>
batching_enabled=False,
batching_max_messages=1000,
batching_max_allowed_size_in_bytes=128*1024,
- batching_max_publish_delay_ms=10
+ batching_max_publish_delay_ms=10,
+ message_routing_mode=PartitionsRoutingMode.RoundRobinDistribution
):
"""
Create a new producer on a given topic.
@@ -2198,7 +2207,8 @@ producers and consumers.</p></div>
* `block_if_queue_full`: Set whether `send_async` operations should
block when the outgoing message queue is full.
* `message_routing_mode`:
- Set the message routing mode for the partitioned producer.
+ Set the message routing mode for the partitioned producer. Default is `PartitionsRoutingMode.RoundRobinDistribution`,
+ other option is `PartitionsRoutingMode.UseSinglePartition`
"""
_check_type(str, topic, 'topic')
_check_type_or_none(str, producer_name, 'producer_name')
@@ -2221,6 +2231,7 @@ producers and consumers.</p></div>
conf.batching_max_messages(batching_max_messages)
conf.batching_max_allowed_size_in_bytes(batching_max_allowed_size_in_bytes)
conf.batching_max_publish_delay_ms(batching_max_publish_delay_ms)
+ conf.partitions_routing_mode(message_routing_mode)
if producer_name:
conf.producer_name(producer_name)
if initial_sequence_id:
@@ -2542,7 +2553,7 @@ producers and consumers.</p></div>
<div class="item">
<div class="name def" id="pulsar.Client.create_producer">
- <p>def <span class="ident">create_producer</span>(</p><p>self, topic, producer_name=None, initial_sequence_id=None, send_timeout_millis=30000, compression_type=_pulsar.CompressionType.NONE, max_pending_messages=1000, block_if_queue_full=False, batching_enabled=False, batching_max_messages=1000, batching_max_allowed_size_in_bytes=131072, batching_max_publish_delay_ms=10)</p>
+ <p>def <span class="ident">create_producer</span>(</p><p>self, topic, producer_name=None, initial_sequence_id=None, send_timeout_millis=30000, compression_type=_pulsar.CompressionType.NONE, max_pending_messages=1000, block_if_queue_full=False, batching_enabled=False, batching_max_messages=1000, batching_max_allowed_size_in_bytes=131072, batching_max_publish_delay_ms=10, message_routing_mode=_pulsar.PartitionsRoutingMode.RoundRobinDistribution)</p>
</div>
@@ -2576,8 +2587,9 @@ producers and consumers.</p></div>
an acknowledgment from the broker.
*</code>block_if_queue_full<code>: Set whether</code>send_async<code>operations should
block when the outgoing message queue is full.
-*</code>message_routing_mode`:
- Set the message routing mode for the partitioned producer.</p></div>
+*</code>message_routing_mode<code>:
+ Set the message routing mode for the partitioned producer. Default is</code>PartitionsRoutingMode.RoundRobinDistribution<code>,
+ other option is</code>PartitionsRoutingMode.UseSinglePartition`</p></div>
<div class="source_cont">
<p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.Client.create_producer', this);">Show source ≡</a></p>
<div id="source-pulsar.Client.create_producer" class="source">
@@ -2591,7 +2603,8 @@ producers and consumers.</p></div>
batching_enabled=False,
batching_max_messages=1000,
batching_max_allowed_size_in_bytes=128*1024,
- batching_max_publish_delay_ms=10
+ batching_max_publish_delay_ms=10,
+ message_routing_mode=PartitionsRoutingMode.RoundRobinDistribution
):
"""
Create a new producer on a given topic.
@@ -2623,7 +2636,8 @@ producers and consumers.</p></div>
* `block_if_queue_full`: Set whether `send_async` operations should
block when the outgoing message queue is full.
* `message_routing_mode`:
- Set the message routing mode for the partitioned producer.
+ Set the message routing mode for the partitioned producer. Default is `PartitionsRoutingMode.RoundRobinDistribution`,
+ other option is `PartitionsRoutingMode.UseSinglePartition`
"""
_check_type(str, topic, 'topic')
_check_type_or_none(str, producer_name, 'producer_name')
@@ -2645,6 +2659,7 @@ producers and consumers.</p></div>
conf.batching_max_messages(batching_max_messages)
conf.batching_max_allowed_size_in_bytes(batching_max_allowed_size_in_bytes)
conf.batching_max_publish_delay_ms(batching_max_publish_delay_ms)
+ conf.partitions_routing_mode(message_routing_mode)
if producer_name:
conf.producer_name(producer_name)
if initial_sequence_id:
@@ -4265,6 +4280,13 @@ a new message is available.</p>
</div>
</div>
+ <h2 class="section-title" id="header-submodules">Sub-modules</h2>
+ <div class="item">
+ <p class="name"><a href="functions/index.html">pulsar.functions</a></p>
+
+
+
+ </div>
</section>
</article>
diff --git a/content/docs/latest/reference/Configuration/index.html b/content/docs/latest/reference/Configuration/index.html
index 9175441..60db3b1 100644
--- a/content/docs/latest/reference/Configuration/index.html
+++ b/content/docs/latest/reference/Configuration/index.html
@@ -1607,6 +1607,13 @@ Ideally, ledger dirs and the journal dir are each in a different device, which r
<td>5</td>
</tr>
+ <tr id="broker-brokerServiceCompactionMonitorIntervalInSeconds">
+ <td>brokerServiceCompactionMonitorIntervalInSeconds</td>
+ <td>Interval between checks to see if topics with compaction policies need to be compacted
+</td>
+ <td>60</td>
+ </tr>
+
<tr id="broker-activeConsumerFailoverDelayTimeMillis">
<td>activeConsumerFailoverDelayTimeMillis</td>
<td>How long to delay rewinding cursor and dispatching messages when active consumer is changed.
@@ -2122,6 +2129,55 @@ Ideally, ledger dirs and the journal dir are each in a different device, which r
<td>org.apache.pulsar.broker.loadbalance.impl.SimpleLoadManagerImpl</td>
</tr>
+ <tr id="broker-managedLedgerOffloadDriver">
+ <td>managedLedgerOffloadDriver</td>
+ <td>Driver to use to offload old data to long term storage (Possible values: S3)
+</td>
+ <td></td>
+ </tr>
+
+ <tr id="broker-managedLedgerOffloadMaxThreads">
+ <td>managedLedgerOffloadMaxThreads</td>
+ <td>Maximum number of thread pool threads for ledger offloading
+</td>
+ <td>2</td>
+ </tr>
+
+ <tr id="broker-s3ManagedLedgerOffloadRegion">
+ <td>s3ManagedLedgerOffloadRegion</td>
+ <td>For Amazon S3 ledger offload, AWS region
+</td>
+ <td></td>
+ </tr>
+
+ <tr id="broker-s3ManagedLedgerOffloadBucket">
+ <td>s3ManagedLedgerOffloadBucket</td>
+ <td>For Amazon S3 ledger offload, Bucket to place offloaded ledger into
+</td>
+ <td></td>
+ </tr>
+
+ <tr id="broker-s3ManagedLedgerOffloadServiceEndpoint">
+ <td>s3ManagedLedgerOffloadServiceEndpoint</td>
+ <td>For Amazon S3 ledger offload, Alternative endpoint to connect to (useful for testing)
+</td>
+ <td></td>
+ </tr>
+
+ <tr id="broker-s3ManagedLedgerOffloadMaxBlockSizeInBytes">
+ <td>s3ManagedLedgerOffloadMaxBlockSizeInBytes</td>
+ <td>For Amazon S3 ledger offload, Max block size in bytes. (64MB by default, 5MB minimum)
+</td>
+ <td>67108864</td>
+ </tr>
+
+ <tr id="broker-s3ManagedLedgerOffloadReadBufferSizeInBytes">
+ <td>s3ManagedLedgerOffloadReadBufferSizeInBytes</td>
+ <td>For Amazon S3 ledger offload, Read buffer size in bytes (1MB by default)
+</td>
+ <td>1048576</td>
+ </tr>
+
</tbody>
</table>
diff --git a/content/docs/latest/reference/RestApi/index.html b/content/docs/latest/reference/RestApi/index.html
index 87c1feb..868432b 100644
--- a/content/docs/latest/reference/RestApi/index.html
+++ b/content/docs/latest/reference/RestApi/index.html
@@ -4201,7 +4201,7 @@
<h5>
<code class="highlighter-rouge get">GET</code>
</h5>
- <p>Get all namespaces that are grouped by given anti-affinity group in a given cluster. api can be only accessed by admin of any of the existing property</p>
+ <p>Get all namespaces that are grouped by given anti-affinity group in a given cluster. api can be only accessed by admin of any of the existing tenant</p>
<h5>URL parameters</h5>
<table>
@@ -4230,7 +4230,7 @@
</tr>
<tr>
- <td><code class="highlighter-rouge">property</code></td>
+ <td><code class="highlighter-rouge">tenant</code></td>
<td>query</td>
<td>false</td>
<td>string</td>
diff --git a/content/download/index.html b/content/download/index.html
index a841b03..872e0e2 100644
--- a/content/download/index.html
+++ b/content/download/index.html
@@ -297,12 +297,12 @@
<tr>
<td style="text-align: left">Binary</td>
<td style="text-align: left"><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-bin.tar.gz">pulsar-2.0.0-rc1-incubating-bin.tar.gz</a></td>
- <td style="text-align: left"><a href="https://www.apache.org/dist/incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-bin.tar.gz.asc">asc</a>, <a href="https://www.apache.org/dist/incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-bin.tar.gz.md5">md5</a>, <a href="https://www.apache.org/dist/incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-bin.tar.gz.sha512">sha512</a></td>
+ <td style="text-align: left"><a href="https://www.apache.org/dist/incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-bin.tar.gz.asc">asc</a>, <a href="https://www.apache.org/dist/incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-bin.tar.gz.sha1">sha1</a>, <a href="https://www.apache.org/dist/incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-bin.tar.gz.sha512">sha512</a></td>
</tr>
<tr>
<td style="text-align: left">Source</td>
<td style="text-align: left"><a href="https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-src.tar.gz">pulsar-2.0.0-rc1-incubating-src.tar.gz</a></td>
- <td style="text-align: left"><a href="https://www.apache.org/dist/incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-src.tar.gz.asc">asc</a>, <a href="https://www.apache.org/dist/incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-src.tar.gz.md5">md5</a>, <a href="https://www.apache.org/dist/incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-src.tar.gz.sha512">sha512</a></td>
+ <td style="text-align: left"><a href="https://www.apache.org/dist/incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-src.tar.gz.asc">asc</a>, <a href="https://www.apache.org/dist/incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-src.tar.gz.sha1">sha1</a>, <a href="https://www.apache.org/dist/incubator/pulsar/pulsar-2.0.0-rc1-incubating/apache-pulsar-2.0.0-rc1-incubating-src.tar.gz.sha512">sha512</a></td>
</tr>
</tbody>
</table>
@@ -363,26 +363,26 @@ the same as ours.</p>
<tbody>
<tr>
<td style="text-align: left">1.22.0-incubating</td>
- <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.22.0-incubating/apache-pulsar-1.22.0-incubating-bin.tar.gz">pulsar-1.22.0-incubating-bin.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.22.0-incubating/apache-pulsar-1.22.0-incubating-bin.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.22.0-incubating/apache-pulsar-1.22.0-incubating-bin.tar.gz.md5">md5</a>, <a href=" [...]
- <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.22.0-incubating/apache-pulsar-1.22.0-incubating-src.tar.gz">pulsar-1.22.0-incubating-src.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.22.0-incubating/apache-pulsar-1.22.0-incubating-src.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.22.0-incubating/apache-pulsar-1.22.0-incubating-src.tar.gz.md5">md5</a>, <a href=" [...]
+ <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.22.0-incubating/apache-pulsar-1.22.0-incubating-bin.tar.gz">pulsar-1.22.0-incubating-bin.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.22.0-incubating/apache-pulsar-1.22.0-incubating-bin.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.22.0-incubating/apache-pulsar-1.22.0-incubating-bin.tar.gz.sha1">sha1</a>, <a href [...]
+ <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.22.0-incubating/apache-pulsar-1.22.0-incubating-src.tar.gz">pulsar-1.22.0-incubating-src.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.22.0-incubating/apache-pulsar-1.22.0-incubating-src.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.22.0-incubating/apache-pulsar-1.22.0-incubating-src.tar.gz.sha1">sha1</a>, <a href [...]
<td style="text-align: left"><a href="https://github.com/apache/incubator-pulsar/releases/tag/v1.22.0-incubating">Release notes v1.22.0-incubating</a></td>
</tr>
<tr>
<td style="text-align: left">1.21.0-incubating</td>
- <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.21.0-incubating/apache-pulsar-1.21.0-incubating-bin.tar.gz">pulsar-1.21.0-incubating-bin.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.21.0-incubating/apache-pulsar-1.21.0-incubating-bin.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.21.0-incubating/apache-pulsar-1.21.0-incubating-bin.tar.gz.md5">md5</a>, <a href=" [...]
- <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.21.0-incubating/apache-pulsar-1.21.0-incubating-src.tar.gz">pulsar-1.21.0-incubating-src.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.21.0-incubating/apache-pulsar-1.21.0-incubating-src.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.21.0-incubating/apache-pulsar-1.21.0-incubating-src.tar.gz.md5">md5</a>, <a href=" [...]
+ <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.21.0-incubating/apache-pulsar-1.21.0-incubating-bin.tar.gz">pulsar-1.21.0-incubating-bin.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.21.0-incubating/apache-pulsar-1.21.0-incubating-bin.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.21.0-incubating/apache-pulsar-1.21.0-incubating-bin.tar.gz.sha1">sha1</a>, <a href [...]
+ <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.21.0-incubating/apache-pulsar-1.21.0-incubating-src.tar.gz">pulsar-1.21.0-incubating-src.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.21.0-incubating/apache-pulsar-1.21.0-incubating-src.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.21.0-incubating/apache-pulsar-1.21.0-incubating-src.tar.gz.sha1">sha1</a>, <a href [...]
<td style="text-align: left"><a href="https://github.com/apache/incubator-pulsar/releases/tag/v1.21.0-incubating">Release notes v1.21.0-incubating</a></td>
</tr>
<tr>
<td style="text-align: left">1.20.0-incubating</td>
- <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.20.0-incubating/apache-pulsar-1.20.0-incubating-bin.tar.gz">pulsar-1.20.0-incubating-bin.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.20.0-incubating/apache-pulsar-1.20.0-incubating-bin.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.20.0-incubating/apache-pulsar-1.20.0-incubating-bin.tar.gz.md5">md5</a>, <a href=" [...]
- <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.20.0-incubating/apache-pulsar-1.20.0-incubating-src.tar.gz">pulsar-1.20.0-incubating-src.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.20.0-incubating/apache-pulsar-1.20.0-incubating-src.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.20.0-incubating/apache-pulsar-1.20.0-incubating-src.tar.gz.md5">md5</a>, <a href=" [...]
+ <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.20.0-incubating/apache-pulsar-1.20.0-incubating-bin.tar.gz">pulsar-1.20.0-incubating-bin.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.20.0-incubating/apache-pulsar-1.20.0-incubating-bin.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.20.0-incubating/apache-pulsar-1.20.0-incubating-bin.tar.gz.sha1">sha1</a>, <a href [...]
+ <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.20.0-incubating/apache-pulsar-1.20.0-incubating-src.tar.gz">pulsar-1.20.0-incubating-src.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.20.0-incubating/apache-pulsar-1.20.0-incubating-src.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.20.0-incubating/apache-pulsar-1.20.0-incubating-src.tar.gz.sha1">sha1</a>, <a href [...]
<td style="text-align: left"><a href="https://github.com/apache/incubator-pulsar/releases/tag/v1.20.0-incubating">Release notes v1.20.0-incubating</a></td>
</tr>
<tr>
<td style="text-align: left">1.19.0-incubating</td>
- <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.19.0-incubating/apache-pulsar-1.19.0-incubating-bin.tar.gz">pulsar-1.19.0-incubating-bin.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.19.0-incubating/apache-pulsar-1.19.0-incubating-bin.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.19.0-incubating/apache-pulsar-1.19.0-incubating-bin.tar.gz.md5">md5</a>, <a href=" [...]
- <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.19.0-incubating/apache-pulsar-1.19.0-incubating-src.tar.gz">pulsar-1.19.0-incubating-src.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.19.0-incubating/apache-pulsar-1.19.0-incubating-src.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.19.0-incubating/apache-pulsar-1.19.0-incubating-src.tar.gz.md5">md5</a>, <a href=" [...]
+ <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.19.0-incubating/apache-pulsar-1.19.0-incubating-bin.tar.gz">pulsar-1.19.0-incubating-bin.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.19.0-incubating/apache-pulsar-1.19.0-incubating-bin.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.19.0-incubating/apache-pulsar-1.19.0-incubating-bin.tar.gz.sha1">sha1</a>, <a href [...]
+ <td style="text-align: left"><a href="http://archive.apache.org/dist/incubator/pulsar/pulsar-1.19.0-incubating/apache-pulsar-1.19.0-incubating-src.tar.gz">pulsar-1.19.0-incubating-src.tar.gz</a> - <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.19.0-incubating/apache-pulsar-1.19.0-incubating-src.tar.gz.asc">asc</a>, <a href="https://archive.apache.org/dist/incubator/pulsar/pulsar-1.19.0-incubating/apache-pulsar-1.19.0-incubating-src.tar.gz.sha1">sha1</a>, <a href [...]
<td style="text-align: left"><a href="https://github.com/apache/incubator-pulsar/releases/tag/v1.19.0-incubating">Release notes v1.19.0-incubating</a></td>
</tr>
</tbody>
diff --git a/content/ja/reference/Configuration/index.html b/content/ja/reference/Configuration/index.html
index 85541e0..fef4866 100644
--- a/content/ja/reference/Configuration/index.html
+++ b/content/ja/reference/Configuration/index.html
@@ -1387,6 +1387,13 @@ Ideally, ledger dirs and the journal dir are each in a different device, which r
<td>5</td>
</tr>
+ <tr id="broker-brokerServiceCompactionMonitorIntervalInSeconds">
+ <td>brokerServiceCompactionMonitorIntervalInSeconds</td>
+ <td>Interval between checks to see if topics with compaction policies need to be compacted
+</td>
+ <td>60</td>
+ </tr>
+
<tr id="broker-activeConsumerFailoverDelayTimeMillis">
<td>activeConsumerFailoverDelayTimeMillis</td>
<td>How long to delay rewinding cursor and dispatching messages when active consumer is changed.
@@ -1902,6 +1909,55 @@ Ideally, ledger dirs and the journal dir are each in a different device, which r
<td>org.apache.pulsar.broker.loadbalance.impl.SimpleLoadManagerImpl</td>
</tr>
+ <tr id="broker-managedLedgerOffloadDriver">
+ <td>managedLedgerOffloadDriver</td>
+ <td>Driver to use to offload old data to long term storage (Possible values: S3)
+</td>
+ <td></td>
+ </tr>
+
+ <tr id="broker-managedLedgerOffloadMaxThreads">
+ <td>managedLedgerOffloadMaxThreads</td>
+ <td>Maximum number of thread pool threads for ledger offloading
+</td>
+ <td>2</td>
+ </tr>
+
+ <tr id="broker-s3ManagedLedgerOffloadRegion">
+ <td>s3ManagedLedgerOffloadRegion</td>
+ <td>For Amazon S3 ledger offload, AWS region
+</td>
+ <td></td>
+ </tr>
+
+ <tr id="broker-s3ManagedLedgerOffloadBucket">
+ <td>s3ManagedLedgerOffloadBucket</td>
+ <td>For Amazon S3 ledger offload, Bucket to place offloaded ledger into
+</td>
+ <td></td>
+ </tr>
+
+ <tr id="broker-s3ManagedLedgerOffloadServiceEndpoint">
+ <td>s3ManagedLedgerOffloadServiceEndpoint</td>
+ <td>For Amazon S3 ledger offload, Alternative endpoint to connect to (useful for testing)
+</td>
+ <td></td>
+ </tr>
+
+ <tr id="broker-s3ManagedLedgerOffloadMaxBlockSizeInBytes">
+ <td>s3ManagedLedgerOffloadMaxBlockSizeInBytes</td>
+ <td>For Amazon S3 ledger offload, Max block size in bytes. (64MB by default, 5MB minimum)
+</td>
+ <td>67108864</td>
+ </tr>
+
+ <tr id="broker-s3ManagedLedgerOffloadReadBufferSizeInBytes">
+ <td>s3ManagedLedgerOffloadReadBufferSizeInBytes</td>
+ <td>For Amazon S3 ledger offload, Read buffer size in bytes (1MB by default)
+</td>
+ <td>1048576</td>
+ </tr>
+
</tbody>
</table>
diff --git a/content/ja/reference/RestApi/index.html b/content/ja/reference/RestApi/index.html
index 3fc0151..9485acb 100644
--- a/content/ja/reference/RestApi/index.html
+++ b/content/ja/reference/RestApi/index.html
@@ -3987,7 +3987,7 @@
<h5>
<code class="highlighter-rouge get">GET</code>
</h5>
- <p>Get all namespaces that are grouped by given anti-affinity group in a given cluster. api can be only accessed by admin of any of the existing property</p>
+ <p>Get all namespaces that are grouped by given anti-affinity group in a given cluster. api can be only accessed by admin of any of the existing tenant</p>
<h5>URL parameters</h5>
<table>
@@ -4016,7 +4016,7 @@
</tr>
<tr>
- <td><code class="highlighter-rouge">property</code></td>
+ <td><code class="highlighter-rouge">tenant</code></td>
<td>query</td>
<td>false</td>
<td>string</td>
--
To stop receiving notification emails like this one, please contact
mmerli@apache.org.