GEODE-8593: Update geode-native examples to use builder pattern: C++ (revisions)
diff --git a/docs/geode-native-docs-cpp/connection-pools/client-pool-api.html.md.erb b/docs/geode-native-docs-cpp/connection-pools/client-pool-api.html.md.erb
index 6bb7047..72e9de3 100644
--- a/docs/geode-native-docs-cpp/connection-pools/client-pool-api.html.md.erb
+++ b/docs/geode-native-docs-cpp/connection-pools/client-pool-api.html.md.erb
@@ -21,10 +21,7 @@
 
 The native client API allows your clients to create and manage connection pools. The server side does not have an API.
 
-This section lists the primary native client API for pool management. For complete information on the classes and interfaces described here, see the API documentation.
-
-**Note:**
-Only C\# versions of Pool API interfaces, classes, and methods are shown throughout the text in this section (example: `Pool.GetQueryService()`) . The code examples demonstrate both C++ and C\# versions.
+The primary native client API for pool management is `Apache.Geode.Client.Cache`. For complete information on the classes and interfaces described here, see the API documentation.
 
 **Apache.Geode.Client.Cache**
 
diff --git a/docs/geode-native-docs-cpp/connection-pools/configuring-pools-attributes-example.html.md.erb b/docs/geode-native-docs-cpp/connection-pools/configuring-pools-attributes-example.html.md.erb
index 4696143..1509540 100644
--- a/docs/geode-native-docs-cpp/connection-pools/configuring-pools-attributes-example.html.md.erb
+++ b/docs/geode-native-docs-cpp/connection-pools/configuring-pools-attributes-example.html.md.erb
@@ -19,17 +19,44 @@
 limitations under the License.
 -->
 
-Connection pools require standard client/server distributed system and cache configuration settings. You must also configure settings for the locator, server, and pool elements.
+Connection pools require a standard client/server distributed system and cache configuration settings. You must also configure settings for the locator, server, and pool elements.
 
 -   Locator. Host and port where a server locator is listening.
 -   Server. Host and port where a server is listening.
 -   Pool. Client/server connection pool.
 
-The example shows a declarative pool configuration. Following the example is a table that describes the attributes that can be configured.
+This page shows examples of creating a pool configuration programmatically using C++ code, and declaratively using XML.
 
-## Example—Declarative Pool Configuration
+## Programmatic Pool Configuration
 
-This example shows a declarative pool configuration.
+This example shows a programmatic pool configuration. For a list of the attributes you can configure, see `PoolFactory` in the API docs.
+
+```cpp
+cache.getPoolManager()
+      .createFactory()
+      .addLocator("localhost", 34756)
+      .setFreeConnectionTimeout(std::chrono::milliseconds(12345))
+      .setLoadConditioningInterval(std::chrono::milliseconds(23456))
+      .setMaxConnections(7)
+      .setMinConnections(3)
+      .setPingInterval(std::chrono::milliseconds(12345))
+      .setReadTimeout(std::chrono::milliseconds(23456))
+      .setRetryAttempts(3)
+      .setServerGroup("ServerGroup1")
+      .setSocketBufferSize(32768)
+      .setStatisticInterval(std::chrono::milliseconds(10123))
+      .setSubscriptionAckInterval(std::chrono::milliseconds(567))
+      .setSubscriptionEnabled(true)
+      .setSubscriptionMessageTrackingTimeout(std::chrono::milliseconds(900123))
+      .setSubscriptionRedundancy(0)
+      .setThreadLocalConnections(true)
+      .create("test_pool_1");
+```
+
+
+## Declarative Pool Configuration
+
+This example shows a declarative pool configuration. Following the example is a table that describes the XML pool attributes you can configure.
 
 **Note:**
 You create an instance of `PoolFactory` through `PoolManager`.
diff --git a/docs/geode-native-docs-cpp/getting-started/getting-started-nc-client.html.md.erb b/docs/geode-native-docs-cpp/getting-started/getting-started-nc-client.html.md.erb
index 9d19505..3a6ca5d 100644
--- a/docs/geode-native-docs-cpp/getting-started/getting-started-nc-client.html.md.erb
+++ b/docs/geode-native-docs-cpp/getting-started/getting-started-nc-client.html.md.erb
@@ -34,16 +34,15 @@
 
 To connect to a server, your application must follow these steps:
 
-1. Instantiate a `CacheFactory`, setting characteristics of interest (for example, `log-level`).
-1. Create a cache and use it to instantiate a `PoolFactory`, specifying the hostname and port for the server locator.
-1. Create a named pool of network connections.
+1. Create a cache, setting characteristics of interest (for example, `log-level`).
+1. Use the cache to create a named pool of network connections, specifying the hostname and port for at least one server locator.
 1. Instantiate a region of the desired type (usually PROXY, sometimes CACHING_PROXY) and connect it by name to its counterpart on the server.
 
 Once the connection pool and the shared region are in place, your client application is ready to share data with the server.
 
 **Server Connection: C++ Example**
 
-Create a cache and use it to instantiate a `CacheFactory` and set its characteristics:
+Create a cache and set its characteristics:
 
 ``` cpp
 auto cache = CacheFactory()
@@ -53,7 +52,7 @@
     .create();
 ```
 
-Create a pool of network connections:
+Use the cache to create a named pool of network connections, specifying the hostname and port for the server locator:
 
 
 ``` cpp