You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by ba...@apache.org on 2023/05/22 00:46:55 UTC
[pulsar-site] branch main updated: Add CPP client table view doc. (#565)
This is an automated email from the ASF dual-hosted git repository.
baodi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git
The following commit(s) were added to refs/heads/main by this push:
new 9bfa32e0a58 Add CPP client table view doc. (#565)
9bfa32e0a58 is described below
commit 9bfa32e0a585b83ba6205988a5fa734ee73b8ca4
Author: Baodi Shi <ba...@apache.org>
AuthorDate: Mon May 22 08:46:50 2023 +0800
Add CPP client table view doc. (#565)
* Add CPP client table view doc.
* Update docs/client-libraries-tableviews.md
Co-authored-by: Jun Ma <60...@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Anonymitaet <50...@users.noreply.github.com>
* Update docs/client-libraries-tableviews.md
Co-authored-by: tison <wa...@gmail.com>
---------
Co-authored-by: Jun Ma <60...@users.noreply.github.com>
Co-authored-by: Anonymitaet <50...@users.noreply.github.com>
Co-authored-by: tison <wa...@gmail.com>
---
docs/client-libraries-tableviews.md | 106 ++++++++++++++++++++++++++++++------
1 file changed, 88 insertions(+), 18 deletions(-)
diff --git a/docs/client-libraries-tableviews.md b/docs/client-libraries-tableviews.md
index 5ac0efbab11..6fa32e31081 100644
--- a/docs/client-libraries-tableviews.md
+++ b/docs/client-libraries-tableviews.md
@@ -4,25 +4,69 @@ title: Work with TableView
sidebar_label: "Work with TableView"
---
+````mdx-code-block
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+````
+
After setting up your clients, you can explore more to start working with [TableView](concepts-clients.md#tableview).
## Configure TableView
-The following is an example of how to configure a TableView.
-```java
-TableView<String> tv = client.newTableViewBuilder(Schema.STRING)
- .topic("my-tableview")
- .create()
-```
+````mdx-code-block
+<Tabs groupId="lang-choice"
+defaultValue="Java"
+values={[{"label":"Java","value":"Java"},{"label":"C++","value":"C++"}]}>
+<TabItem value="Java">
+
+ The following is an example of how to configure a TableView.
+
+ ```java
+ TableView<String> tv = client.newTableViewBuilder(Schema.STRING)
+ .topic("my-tableview")
+ .create()
+ ```
+
+You can use the available parameters in the `loadConf` configuration or the API [`TableViewBuilder`](/api/client/org/apache/pulsar/client/api/TableViewBuilder.html) to customize your TableView.
+
+ | Name | Type| Required? | <div>Description</div> | Default
+ |---|---|---|---|---
+ | `topic` | string | yes | The topic name of the TableView. | N/A
+ | `autoUpdatePartitionInterval` | int | no | The interval to check for newly added partitions. | 60 (seconds)
+ | `subscriptionName` | string | no | The subscription name of the TableView. | null
+
+</TabItem>
+
+<TabItem value="C++">
+
+
+ This feature is supported in C++ client 3.2.0 or later versions.
+
+
+ ```cpp
+ ClientConfiguration clientConfiguration;
+ clientConfiguration.setPartititionsUpdateInterval(100);
+ Client client("pulsar://localhost:6650", clientConfiguration);
+ TableViewConfiguration tableViewConfiguration{schemaInfo, "test-subscription-name"};
+ TableView tableView;
+ client.createTableView("my-tableview", tableViewConfiguration, tableView)
+ ```
+
+ You can use the following parameters to customize your TableView.
+
+ | Name | Type| Required? | <div>Description</div> | Default
+ |---|---|---|---|---
+ | `topic` | string | yes | The topic name of the TableView. | N/A
+ | `schemaInfo` | struct | no | Declare the schema of the data that this TableView can accept. The schema is checked against the schema of the topic, and the TableView creation fails if it's incompatible. | N/A
+ | `subscriptionName` | string | no | The subscription name of the TableView. | reader-{random string}
+ | `partititionsUpdateInterval` | int | no | Topic partitions update interval in seconds. In the C++ client, `partititionsUpdateInterval` is global within the same client. | 60
-You can use the available parameters in the `loadConf` configuration or related [API](/api/client/2.10.0-SNAPSHOT/org/apache/pulsar/client/api/TableViewBuilder.html) to customize your TableView.
-| Name | Type| Required? | <div>Description</div> | Default
-|---|---|---|---|---
-| `topic` | string | yes | The topic name of the TableView. | N/A
-| `autoUpdatePartitionInterval` | int | no | The interval to check for newly added partitions. | 60 (seconds)
-| `subscriptionName` | string | no | The subscription name of the TableView. | null
+</TabItem>
+
+</Tabs>
+````
## Register listeners
@@ -30,10 +74,36 @@ You can register listeners for both existing messages on a topic and new message
The following is an example of how to register listeners with TableView.
-```java
-// Register listeners for all existing and incoming messages
-tv.forEachAndListen((key, value) -> /*operations on all existing and incoming messages*/)
-// Register action for all existing messages
-tv.forEach((key, value) -> /*operations on all existing messages*/)
-```
+````mdx-code-block
+<Tabs groupId="lang-choice"
+defaultValue="Java"
+values={[{"label":"Java","value":"Java"},{"label":"C++","value":"C++"}]}>
+
+<TabItem value="Java">
+
+ ```java
+ // Register listeners for all existing and incoming messages
+ tv.forEachAndListen((key, value) -> /*operations on all existing and incoming messages*/)
+
+ // Register actions for all existing messages
+ tv.forEach((key, value) -> /*operations on all existing messages*/)
+ ```
+
+</TabItem>
+
+
+<TabItem value="C++">
+
+ ```cpp
+ // Register listeners for all existing and incoming messages
+ tableView.forEach([](const std::string& key, const std::string& value) {});
+
+ // Register actions for all existing messages
+ tableView.forEachAndListen([](const std::string& key, const std::string& value) {});
+ ```
+
+</TabItem>
+
+</Tabs>
+````
\ No newline at end of file