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

bbender pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-native.git


The following commit(s) were added to refs/heads/develop by this push:
     new 74dd4f5  GEODE-8210: Geode-native C++ user manual - update 
serialization description (#612)
74dd4f5 is described below

commit 74dd4f52e0ea30f046f6a8f4e3643ba43955d21e
Author: Dave Barnes <[email protected]>
AuthorDate: Fri Jun 5 09:57:05 2020 -0700

    GEODE-8210: Geode-native C++ user manual - update serialization description 
(#612)
    
    * C++ user guide - update serialization description
    * reorganize source files
---
 .../source/subnavs/geode-nc-nav.erb                |  15 +-
 .../source/subnavs/geode-nc-nav.erb                |   2 +-
 .../{ => archive}/data-as-blob.html.md.erb         |   0
 ...enting-pdxserializable-custom-class.html.md.erb |  43 +++++
 .../{ => archive}/object-graphs.html.md.erb        |   0
 .../pdx-ignore-unread-fields.html.md.erb           |   0
 .../{ => archive}/pdx-serialization.html.md.erb    |   2 +-
 .../pdx-with-delta-propagation.html.md.erb         |   0
 .../pdxserializable-example.html.md.erb            |   0
 .../performing-ops-with-pdx-object.html.md.erb     |   0
 .../serialization-options.html.md.erb              |   0
 .../serialization-overview.html.md.erb             |   0
 .../serialization-using-serializable.html.md.erb   |   0
 .../using-enum-type-with-pdx.html.md.erb           |   0
 .../{ => archive}/using-pdxinstance.html.md.erb    |   0
 .../using-pdxinstancefactory.html.md.erb           |   0
 .../using-pdxserialization.html.md.erb             |   2 +-
 .../{ => archive}/using-pdxserializer.html.md.erb  |   0
 .../cpp-pdx-serialization.html.md.erb}             |  31 ++--
 .../pdx-serializable-examples.html.md.erb}         |  50 +-----
 .../pdxserializable-interface.html.md.erb          |   6 +-
 .../serialization/data-serialization.html.md.erb   | 184 +--------------------
 .../dotnet-pdx-serialization.html.md.erb           |   2 +-
 .../pdx-serializable-examples.html.md.erb          |  11 +-
 24 files changed, 95 insertions(+), 253 deletions(-)

diff --git 
a/docs/geode-native-book-cpp/master_middleman/source/subnavs/geode-nc-nav.erb 
b/docs/geode-native-book-cpp/master_middleman/source/subnavs/geode-nc-nav.erb
index 1968220..5c800d8 100644
--- 
a/docs/geode-native-book-cpp/master_middleman/source/subnavs/geode-nc-nav.erb
+++ 
b/docs/geode-native-book-cpp/master_middleman/source/subnavs/geode-nc-nav.erb
@@ -65,8 +65,21 @@ limitations under the License.
       </ul>
     </li>
 
-    <li>
+    <li class="has_submenu">
       <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/serialization/data-serialization.html">Serializing
 Data</a>
+      <ul>
+        <li class="has_submenu">
+        <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/serialization/cpp-serialization/cpp-pdx-serialization.html">Geode
 PDX Serialization</a>
+        <ul>
+          <li>
+          <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/serialization/cpp-serialization/pdxserializable-interface.html">Using
 the PdxSerializable Abstract Class</a>
+          </li>
+          <li>
+          <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/serialization/cpp-serialization/pdx-serializable-examples.html">PdxSerializable
 Example</a>
+          </li>
+        </ul>
+        </li>
+      </ul>
     </li>
 
     <li>
diff --git 
a/docs/geode-native-book-dotnet/master_middleman/source/subnavs/geode-nc-nav.erb
 
b/docs/geode-native-book-dotnet/master_middleman/source/subnavs/geode-nc-nav.erb
index 2db5b66..d14cb26 100644
--- 
a/docs/geode-native-book-dotnet/master_middleman/source/subnavs/geode-nc-nav.erb
+++ 
b/docs/geode-native-book-dotnet/master_middleman/source/subnavs/geode-nc-nav.erb
@@ -78,7 +78,7 @@ limitations under the License.
               <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/serialization/dotnet-serialization/serialize-using-ipdxserializable.html">Using
 the IPdxSerializable Interface</a>
             </li>
             <li>
-              <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/serialization/dotnet-serialization/pdx-serializable-examples.html">IPdxSerializable
 Examples</a>
+              <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/serialization/dotnet-serialization/pdx-serializable-examples.html">IPdxSerializable
 Example</a>
             </li>
           </ul>
         </li>
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/data-as-blob.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/data-as-blob.html.md.erb
similarity index 100%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/data-as-blob.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/data-as-blob.html.md.erb
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/implementing-pdxserializable-custom-class.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/implementing-pdxserializable-custom-class.html.md.erb
new file mode 100644
index 0000000..47897f0
--- /dev/null
+++ 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/implementing-pdxserializable-custom-class.html.md.erb
@@ -0,0 +1,43 @@
+---
+title:  Implementing a PdxSerializable Custom Class
+---
+
+<!--
+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.
+-->
+
+Pdx serialization provides custom serialization to an individual class. Fields 
within an object can be serialized separately from the rest of the class.
+
+The type of serialization and its implementation can be specified entirely in 
the client
+application, with no need to create corresponding code on the 
<%=product_name%> server.
+
+<a id="setup_pdxsbl_class"></a>
+### Setup
+
+Pdx serialization provides custom serialization to an individual class. Fields 
within an object can be serialized separately from the rest of the class.
+
+Setting up a custom class for PdxSerializable treatment requires some 
preparatory steps:
+
+- The custom class must inherit from the C++ PdxSerializable interface.
+
+- You must provide serialization instructions for objects of the custom class. 
Specifically:
+
+  -  You must implement the `toData()` and `fromData()` methods.
+  -  You must provide a "factory method" that returns an instance of the 
custom object.
+
+- Your application must register your custom class with the cache, which takes 
care of informing the server of your
+  serialization scheme. With registration, you provide the name of the 
"factory method" you created for instantiating
+  objects of the custom class.
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/object-graphs.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/object-graphs.html.md.erb
similarity index 100%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/object-graphs.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/object-graphs.html.md.erb
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-ignore-unread-fields.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/pdx-ignore-unread-fields.html.md.erb
similarity index 100%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-ignore-unread-fields.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/pdx-ignore-unread-fields.html.md.erb
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-serialization.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/pdx-serialization.html.md.erb
similarity index 97%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-serialization.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/pdx-serialization.html.md.erb
index e39ab50..021cb6b 100644
--- 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-serialization.html.md.erb
+++ 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/pdx-serialization.html.md.erb
@@ -28,7 +28,7 @@ domain object or register a `PdxSerializer` for the entire 
cache.
 
 You can also set the object preference of the cache to the `PdxInstance` type, 
which allows you to access fields of a PDX object without deserializing the 
entire object.
 
--   **[Serialize Using the PdxSerializable 
Class](pdxserializable-interface.html)**
+<!--  -   **[Serialize Using the PdxSerializable 
Class](pdxserializable-interface.html)** -->
 
     Domain classes need to inherit the `PdxSerializable` abstract class to 
serialize and de-serialize the object. When you write objects using PDX 
serialization, they are distributed to the server tier in PDX serialized form.
 
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-with-delta-propagation.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/pdx-with-delta-propagation.html.md.erb
similarity index 100%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-with-delta-propagation.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/pdx-with-delta-propagation.html.md.erb
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdxserializable-example.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/pdxserializable-example.html.md.erb
similarity index 100%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/pdxserializable-example.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/pdxserializable-example.html.md.erb
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/performing-ops-with-pdx-object.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/performing-ops-with-pdx-object.html.md.erb
similarity index 100%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/performing-ops-with-pdx-object.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/performing-ops-with-pdx-object.html.md.erb
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/serialization-options.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/serialization-options.html.md.erb
similarity index 100%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/serialization-options.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/serialization-options.html.md.erb
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/serialization-overview.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/serialization-overview.html.md.erb
similarity index 100%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/serialization-overview.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/serialization-overview.html.md.erb
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/serialization-using-serializable.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/serialization-using-serializable.html.md.erb
similarity index 100%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/serialization-using-serializable.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/serialization-using-serializable.html.md.erb
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/using-enum-type-with-pdx.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/using-enum-type-with-pdx.html.md.erb
similarity index 100%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/using-enum-type-with-pdx.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/using-enum-type-with-pdx.html.md.erb
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/using-pdxinstance.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/using-pdxinstance.html.md.erb
similarity index 100%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/using-pdxinstance.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/using-pdxinstance.html.md.erb
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/using-pdxinstancefactory.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/using-pdxinstancefactory.html.md.erb
similarity index 100%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/using-pdxinstancefactory.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/using-pdxinstancefactory.html.md.erb
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/using-pdxserialization.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/using-pdxserialization.html.md.erb
similarity index 97%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/using-pdxserialization.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/using-pdxserialization.html.md.erb
index 23a5cd9..1132067 100644
--- 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/using-pdxserialization.html.md.erb
+++ 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/using-pdxserialization.html.md.erb
@@ -36,7 +36,7 @@ the `registerPdxSerializer` API.
 
 You can also set the object preference of the cache to the `PdxInstance` type, 
which allows you to access fields of a PDX object without deserializing the 
entire object.
 
--   **[Serialize Using the PdxSerializable 
Class](pdxserializable-interface.html)**
+<!-- -   **[Serialize Using the PdxSerializable 
Class](pdxserializable-interface.html)** -->
 
     Domain classes need to inherit the `PdxSerializable` abstract class to 
serialize and de-serialize the object. When you write objects using PDX 
serialization, they are distributed to the server tier in PDX serialized form.
 
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/using-pdxserializer.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/using-pdxserializer.html.md.erb
similarity index 100%
rename from 
docs/geode-native-docs-cpp/serialization/cpp-serialization/using-pdxserializer.html.md.erb
rename to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/archive/using-pdxserializer.html.md.erb
diff --git 
a/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/dotnet-pdx-serialization.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/cpp-pdx-serialization.html.md.erb
similarity index 65%
copy from 
docs/geode-native-docs-dotnet/serialization/dotnet-serialization/dotnet-pdx-serialization.html.md.erb
copy to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/cpp-pdx-serialization.html.md.erb
index 2cafd97..0e63c31 100644
--- 
a/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/dotnet-pdx-serialization.html.md.erb
+++ 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/cpp-pdx-serialization.html.md.erb
@@ -19,7 +19,7 @@ limitations under the License.
 
 <%=vars.product_name%>'s Portable Data eXchange (PDX) is a cross-language data 
format that can reduce the cost of distributing and serializing your objects.
 
-<%=vars.product_name%> .NET PDX serialization:
+<%=vars.product_name%> C++ PDX serialization:
 
 - Is <a href="#pdx-ser-portability">interoperable with other languages by 
<%=vars.product_name%></a> -- no need to program a Java-side implementation
 
@@ -30,32 +30,26 @@ limitations under the License.
 
 - <a href="#pdx-ser-delta-prop">Works with <%=vars.product_name%> delta 
propagation</a>
 
-The simplest option is to use [automatic 
serialization](dotnet-pdx-autoserializer.html) by registering the 
<%=vars.product_name%> .NET
-PDX reflection-based autoserializer in your application. When you have an 
autoserializer,
-<%=vars.product_name%> uses it for all domain objects that are not separately 
treated under the IPDXSerializable interface.
-
-For greater control, you can specify individual treatment for domain objects 
using the `IPdxSerializable` interface.
-Objects derived from the `IPdxSerializable` interface are not subject to 
autoserialization.
+For greater control, you can specify individual treatment for domain objects 
using the `PdxSerializable` interface.
 
 ## <a id="pdx-ser-portability"></a>Portability of PDX Serializable Objects
 
-When you create an `IPdxSerializable` object, <%=vars.product_name%> stores 
the object's type
+When you create a `PdxSerializable` object, <%=vars.product_name%> stores the 
object's type
 information in a central registry. The information is passed between peers, 
between clients and
 servers, and between distributed systems.
 
-This offers a notable advantage to the .NET client, which shares data with 
Java cache
-servers. When using PDX serialization, clients automatically pass registry 
information to servers when they store an
-`IPdxSerializable` object. Clients can run queries and functions against the 
data in the servers
+When using PDX serialization, clients automatically pass registry information 
to servers when they store a
+`PdxSerializable` object. Clients can run queries and functions against the 
data in the servers
 without the servers needing to know anything about the stored objects. One 
client can store data on
 the server to be retrieved by another client, with the server never needing to 
know the object
-type. This means you can code your .NET clients to manage data using Java 
servers without having to
-create Java implementations of your .NET domain objects.
+type. This means you can code your C++ clients to manage data using Java 
servers without having to
+create Java implementations of your C++ domain objects.
 
 ## <a id="pdx-ser-reduced-deserialization"></a>Reduced Deserialization of 
Serialized Objects
 
-The access methods for `IPdxSerializable` objects allow you to examine 
specific fields of your
+The access methods for `PdxSerializable` objects allow you to examine specific 
fields of your
 domain object without deserializing the entire object. This can reduce 
-deserialization costs significantly. Client .NET apps can run queries and 
execute functions against
+deserialization costs significantly. Client C++ apps can run queries and 
execute functions against
 the objects in the server caches without deserializing the entire object on 
the server side. The
 query engine automatically recognizes PDX objects and uses only the fields it 
needs.
 
@@ -70,8 +64,7 @@ You can use <%=vars.product_name%> delta propagation with PDX 
serialization.
 
 ## <a id='pdx-ser-details'></a>PDX Serialization Details
 
-See the following sections for details on implementing PDX serialization and 
autoserialization:
+See the following sections for details on implementing PDX serialization:
 
-- [Using the Geode PDX Autoserializer](dotnet-pdx-autoserializer.html)
-- [Using the IPdxSerializable Interface](serialize-using-ipdxserializable.html)
-- [IPdxSerializable Examples](pdx-serializable-examples.html)
+- [Using the PdxSerializable Abstract Class](pdxserializable-interface.html)
+- [PdxSerializable Examples](pdx-serializable-examples.html)
diff --git 
a/docs/geode-native-docs-cpp/serialization/data-serialization.html.md.erb 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-serializable-examples.html.md.erb
similarity index 67%
copy from 
docs/geode-native-docs-cpp/serialization/data-serialization.html.md.erb
copy to 
docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-serializable-examples.html.md.erb
index 8a7f443..cf613dd 100644
--- a/docs/geode-native-docs-cpp/serialization/data-serialization.html.md.erb
+++ 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-serializable-examples.html.md.erb
@@ -1,5 +1,5 @@
 ---
-title:  Serializing Data
+title:  PdxSerializable Example
 ---
 
 <!--
@@ -19,49 +19,12 @@ See the License for the specific language governing 
permissions and
 limitations under the License.
 -->
 
-Data in your client application's <%=vars.product_name%> cache must be 
serializable to be shared with <%=vars.product_name%> servers and other
-<%=vars.product_name%> clients.
-<%=vars.product_name%> provides multiple data serialization options for 
storage and transmittal
-between processes, of which **<%=vars.product_name%> Portable Data eXchange 
(PDX) serialization** offers
-the best combination of versatility and ease-of-use for most applications.
-
-To learn more about other serialization options, see the [Data Serialization 
section in the _<%=vars.product_name_long%> User 
Guide_](serverman/developing/data_serialization/chapter_overview.html).
-
-<a id="implementing_pdxsbl_class"></a>
-## Implementing a PdxSerializable Custom Class
-
-Pdx serialization provides custom serialization to an individual class. Fields 
within an object can be serialized separately from the rest of the class.
-
-The type of serialization and its implementation can be specified entirely in 
the client
-application, with no need to create corresponding code on the 
<%=product_name%> server.
-
-<a id="setup_pdxsbl_class"></a>
-### Setup
-
-Pdx serialization provides custom serialization to an individual class. Fields 
within an object can be serialized separately from the rest of the class.
-
-Setting up a custom class for PdxSerializable treatment requires some 
preparatory steps:
-
-- The custom class must inherit from the C++ PdxSerializable interface.
-
-- You must provide serialization instructions for objects of the custom class. 
Specifically:
-
-  -  You must implement the `toData()` and `fromData()` methods.
-  -  You must provide a "factory method" that returns an instance of the 
custom object.
-
-- Your application must register your custom class with the cache, which takes 
care of informing the server of your
-  serialization scheme. With registration, you provide the name of the 
"factory method" you created for instantiating
-  objects of the custom class.
-
-<a id="pdxsbl_examples"></a>
-## PdxSerializable Examples
-
-The native client release contains examples showing how a client application
+The native client release contains an example showing how a client application
 can register for serialization of custom objects using the C++ PdxSerializable 
interface.
 
-The examples are located in `examples/cpp/pdxserializable`.
+The example is located in `examples/cpp/pdxserializable`.
 
-The examples define the serializable class, `Orders`, including its 
serialization and deserialization methods and its factory method.
+The example defines the serializable class, `Orders`, including its 
serialization and deserialization methods and its factory method.
 Once these pieces are in place, execution is simple: the main routine of the 
example registers the serializable class then performs some put and get 
operations.
 
 <a id="pdxsbl_execution"></a>
@@ -69,7 +32,8 @@ Once these pieces are in place, execution is simple: the main 
routine of the exa
 
 The example performs a sequence of operations, displaying simple log entries 
as they run.
 
-- To run an example, follow the instructions in the README.md file in the 
example directory.
+- To run the example, follow the instructions in the README.md file in the 
example directory.
+
 - Review the source code in the example directory to see exactly how it 
operates.
 
 - Begin by running a script that sets up the server-side environment by 
invoking `gfsh` commands to create a region, a locator, and a server.
@@ -110,7 +74,7 @@ class Order : public PdxSerializable {
 
 ```
 
-Using the PdxSerializable read and write methods, the `Order` class defines 
`fromData()` and `toData()`
+Using the `PdxSerializable` read and write methods, the `Order` class defines 
`fromData()` and `toData()`
 methods that perform the deserialization and serialization operations, 
respectively, and the
 `createDeserializable()` factory method:
 
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdxserializable-interface.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdxserializable-interface.html.md.erb
index 56cb7fa..eecc566 100644
--- 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdxserializable-interface.html.md.erb
+++ 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdxserializable-interface.html.md.erb
@@ -1,5 +1,5 @@
 ---
-title:  Serialize Using the PdxSerializable Class
+title:  Using the PdxSerializable Abstract Class
 ---
 
 <!--
@@ -49,9 +49,9 @@ Use this procedure to program your domain object for PDX 
serialization using the
     <br><br>
     If no fields are set as identity fields, then all fields will be used in 
`hashCode` and equality checks. The identity fields should make marked after 
they are written using a `write*` method.
 
-## <a class="no-quick-link" id="pdx-serializable-example"></a>PdxSerializable 
Example
+For example:
 
-``` pre
+``` cpp
 class PdxObject: public PdxSerializable {
 
 private:
diff --git 
a/docs/geode-native-docs-cpp/serialization/data-serialization.html.md.erb 
b/docs/geode-native-docs-cpp/serialization/data-serialization.html.md.erb
index 8a7f443..a99a879 100644
--- a/docs/geode-native-docs-cpp/serialization/data-serialization.html.md.erb
+++ b/docs/geode-native-docs-cpp/serialization/data-serialization.html.md.erb
@@ -19,184 +19,12 @@ See the License for the specific language governing 
permissions and
 limitations under the License.
 -->
 
-Data in your client application's <%=vars.product_name%> cache must be 
serializable to be shared with <%=vars.product_name%> servers and other
-<%=vars.product_name%> clients.
+Data in your client application's <%=vars.product_name%> cache must be 
serializable to be shared
+with <%=vars.product_name%> servers and other <%=vars.product_name%> clients.
 <%=vars.product_name%> provides multiple data serialization options for 
storage and transmittal
-between processes, of which **<%=vars.product_name%> Portable Data eXchange 
(PDX) serialization** offers
-the best combination of versatility and ease-of-use for most applications.
+between processes, of which [**<%=vars.product_name%> Portable Data eXchange 
(PDX) serialization**](cpp-serialization/cpp-pdx-serialization.html))
+offers the best combination of versatility and ease-of-use for most 
applications.
 
-To learn more about other serialization options, see the [Data Serialization 
section in the _<%=vars.product_name_long%> User 
Guide_](serverman/developing/data_serialization/chapter_overview.html).
+To learn more about other serialization options, see the [Data Serialization 
section in the
+_<%=vars.product_name_long%> User 
Guide_](serverman/developing/data_serialization/chapter_overview.html).
 
-<a id="implementing_pdxsbl_class"></a>
-## Implementing a PdxSerializable Custom Class
-
-Pdx serialization provides custom serialization to an individual class. Fields 
within an object can be serialized separately from the rest of the class.
-
-The type of serialization and its implementation can be specified entirely in 
the client
-application, with no need to create corresponding code on the 
<%=product_name%> server.
-
-<a id="setup_pdxsbl_class"></a>
-### Setup
-
-Pdx serialization provides custom serialization to an individual class. Fields 
within an object can be serialized separately from the rest of the class.
-
-Setting up a custom class for PdxSerializable treatment requires some 
preparatory steps:
-
-- The custom class must inherit from the C++ PdxSerializable interface.
-
-- You must provide serialization instructions for objects of the custom class. 
Specifically:
-
-  -  You must implement the `toData()` and `fromData()` methods.
-  -  You must provide a "factory method" that returns an instance of the 
custom object.
-
-- Your application must register your custom class with the cache, which takes 
care of informing the server of your
-  serialization scheme. With registration, you provide the name of the 
"factory method" you created for instantiating
-  objects of the custom class.
-
-<a id="pdxsbl_examples"></a>
-## PdxSerializable Examples
-
-The native client release contains examples showing how a client application
-can register for serialization of custom objects using the C++ PdxSerializable 
interface.
-
-The examples are located in `examples/cpp/pdxserializable`.
-
-The examples define the serializable class, `Orders`, including its 
serialization and deserialization methods and its factory method.
-Once these pieces are in place, execution is simple: the main routine of the 
example registers the serializable class then performs some put and get 
operations.
-
-<a id="pdxsbl_execution"></a>
-### Execution
-
-The example performs a sequence of operations, displaying simple log entries 
as they run.
-
-- To run an example, follow the instructions in the README.md file in the 
example directory.
-- Review the source code in the example directory to see exactly how it 
operates.
-
-- Begin by running a script that sets up the server-side environment by 
invoking `gfsh` commands to create a region, a locator, and a server.
-
-- Run the example client application, which performs the following steps:
-
-  - Connects to the server
-  - Registers the PdxSerializable class
-  - Creates orders
-  - Stores orders
-  - Retrieves orders
-
-<a id="pdxsbl_cpp_example"></a>
-### C++ Example
-
-This section contains code snippets showing highlights of the C++ 
PdxSerialiable example. They are not intended for cut-and-paste execution.
-For the complete source, see the example source directory.
-
-The C++ example defines a PdxSerializable class called `Order` that inherits 
from the `PdxSerializable` interface.
-An `Order` object contains three fields:
-
-- an integer `order_id`
-- a string `name`
-- a short-int `quantity`
-
-From Order.hpp:
-
-```cpp
-class Order : public PdxSerializable {
- public:
- ...
-
- private:
-  int32_t order_id_;
-  std::string name_;
-  int16_t quantity_;
-};
-
-```
-
-Using the PdxSerializable read and write methods, the `Order` class defines 
`fromData()` and `toData()`
-methods that perform the deserialization and serialization operations, 
respectively, and the
-`createDeserializable()` factory method:
-
-From Order.cpp:
-
-```cpp
-void Order::fromData(PdxReader& pdxReader) {
-  order_id_ = pdxReader.readInt(ORDER_ID_KEY_);
-  name_ = pdxReader.readString(NAME_KEY_);
-  quantity_ = pdxReader.readShort(QUANTITY_KEY_);
-}
-
-void Order::toData(PdxWriter& pdxWriter) const {
-  pdxWriter.writeInt(ORDER_ID_KEY_, order_id_);
-  pdxWriter.markIdentityField(ORDER_ID_KEY_);
-
-  pdxWriter.writeString(NAME_KEY_, name_);
-  pdxWriter.markIdentityField(NAME_KEY_);
-
-  pdxWriter.writeShort(QUANTITY_KEY_, quantity_);
-  pdxWriter.markIdentityField(QUANTITY_KEY_);
-}
-
-...
-
-std::shared_ptr<PdxSerializable> Order::createDeserializable() {
-  return std::make_shared<Order>();
-}
-```
-
-The C++ example mainline creates a cache, then uses it to create a connection 
pool and a region object (of class `Region`).
-
-```cpp
-  auto cacheFactory = CacheFactory();
-  cacheFactory.set("log-level", "none");
-  auto cache = cacheFactory.create();
-  auto poolFactory = cache.getPoolManager().createFactory();
-
-  poolFactory.addLocator("localhost", 10334);
-  auto pool = poolFactory.create("pool");
-  auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
-  auto region = regionFactory.setPoolName("pool").create("custom_orders");
-```
-
-The client registers the PdxSerializable class that was created in Orders.cpp:
-
-```cpp
-  cache.getTypeRegistry().registerPdxType(Order::createDeserializable);
-```
-
-The client then instantiates and stores two `Order` objects:
-
-```cpp
-  auto order1 = std::make_shared<Order>(1, "product x", 23);
-  auto order2 = std::make_shared<Order>(2, "product y", 37);
-
-  region->put("Customer1", order1);
-  region->put("Customer2", order2);
-```
-
-Next, the application retrieves the stored values, in one case extracting the 
fields defined in
-the serialization code:
-
-```cpp
-  if (auto order1retrieved =
-          std::dynamic_pointer_cast<Order>(region->get("Customer1"))) {
-    std::cout << "OrderID: " << order1retrieved->getOrderId() << std::endl;
-    std::cout << "Product Name: " << order1retrieved->getName() << std::endl;
-    std::cout << "Quantity: " << order1retrieved->getQuantity() << std::endl;
-  } else {
-    std::cout << "Order 1 not found." << std::endl;
-  }
-```
-
-The application retrieves the second object and displays it without extracting 
the separate fields:
-
-```cpp
-  if (region->existsValue("rtimmons")) {
-    std::cout << "rtimmons's info not deleted" << std::endl;
-  } else {
-    std::cout << "rtimmons's info successfully deleted" << std::endl;
-  }
-```
-
-Finally, the application closes the cache:
-
-```cpp
-  cache.close();
-```
diff --git 
a/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/dotnet-pdx-serialization.html.md.erb
 
b/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/dotnet-pdx-serialization.html.md.erb
index 2cafd97..5ae12e4 100644
--- 
a/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/dotnet-pdx-serialization.html.md.erb
+++ 
b/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/dotnet-pdx-serialization.html.md.erb
@@ -72,6 +72,6 @@ You can use <%=vars.product_name%> delta propagation with PDX 
serialization.
 
 See the following sections for details on implementing PDX serialization and 
autoserialization:
 
-- [Using the Geode PDX Autoserializer](dotnet-pdx-autoserializer.html)
+- [Using the <%=vars.product_name%> 
Autoserializer](dotnet-pdx-autoserializer.html)
 - [Using the IPdxSerializable Interface](serialize-using-ipdxserializable.html)
 - [IPdxSerializable Examples](pdx-serializable-examples.html)
diff --git 
a/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/pdx-serializable-examples.html.md.erb
 
b/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/pdx-serializable-examples.html.md.erb
index 0670bfa..9635e7f 100644
--- 
a/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/pdx-serializable-examples.html.md.erb
+++ 
b/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/pdx-serializable-examples.html.md.erb
@@ -1,5 +1,5 @@
 ---
-title:  IPdxSerializable Examples
+title:  IPdxSerializable Example
 ---
 
 <!--
@@ -19,12 +19,12 @@ See the License for the specific language governing 
permissions and
 limitations under the License.
 -->
 
-The native client release contains examples showing how a client application
+The native client release contain an example showing how a client application
 can register for serialization of domain objects using the .NET 
IPdxSerializable interface.
 
-The examples are located in `examples\dotnet\pdxserializable`.
+The example is located in `examples\dotnet\pdxserializable`.
 
-The examples define the serializable class, `Orders`, including its 
serialization and deserialization methods and its factory method.
+The example defines the serializable class, `Orders`, including its 
serialization and deserialization methods and its factory method.
 Once these pieces are in place, execution is simple: the main routine of the 
example registers the serializable class then performs some put and get 
operations.
 
 <a id="pdxsbl_execution"></a>
@@ -32,7 +32,8 @@ Once these pieces are in place, execution is simple: the main 
routine of the exa
 
 The example performs a sequence of operations, displaying simple log entries 
as they run.
 
-- To run an example, follow the instructions in the README.md file in the 
example directory.
+- To run the example, follow the instructions in the README.md file in the 
example directory.
+
 - Review the source code in the example directory to see exactly how it 
operates.
 
 - Begin by running a script that sets up the server-side environment by 
invoking `gfsh` commands to create a region, a locator, and a server.

Reply via email to