geode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jbarr...@apache.org
Subject [9/9] geode-native git commit: GEODE-2741: Removes last of SharedPtr/SharedBase.
Date Thu, 22 Jun 2017 18:01:32 GMT
GEODE-2741: Removes last of SharedPtr/SharedBase.

- Fixes Solaris compilation.
 - Removes template parameter packing.
 - Updates default set of linker libraries.
- Removes UnwrapSharedPtr and things of that nature.
- Removes TypeHelper
- Removes SharedPtr alias.
- Removed custom new/delete operators.
- Fixes std::cout usage.


Project: http://git-wip-us.apache.org/repos/asf/geode-native/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode-native/commit/b1a9af53
Tree: http://git-wip-us.apache.org/repos/asf/geode-native/tree/b1a9af53
Diff: http://git-wip-us.apache.org/repos/asf/geode-native/diff/b1a9af53

Branch: refs/heads/develop
Commit: b1a9af530dee2687fe9c86c184a723ac02204a69
Parents: 3220350
Author: Jacob Barrett <jbarrett@pivotal.io>
Authored: Sat Jun 10 07:40:41 2017 +0000
Committer: Jacob Barrett <jbarrett@pivotal.io>
Committed: Thu Jun 22 10:47:05 2017 -0700

----------------------------------------------------------------------
 src/clicache/src/CacheFactory.hpp               |    8 -
 src/clicache/src/impl/AuthenticatedCache.cpp    |    2 +-
 .../include/geode/AttributesFactory.hpp         |    2 +-
 .../include/geode/AttributesMutator.hpp         |    2 +-
 src/cppcache/include/geode/AuthInitialize.hpp   |    3 +-
 src/cppcache/include/geode/Cache.hpp            |    3 +-
 src/cppcache/include/geode/CacheAttributes.hpp  |    2 +-
 src/cppcache/include/geode/CacheFactory.hpp     |    4 +-
 src/cppcache/include/geode/CacheListener.hpp    |   48 +-
 src/cppcache/include/geode/CacheLoader.hpp      |    2 +-
 src/cppcache/include/geode/CacheStatistics.hpp  |    2 +-
 .../include/geode/CacheTransactionManager.hpp   |    3 +-
 src/cppcache/include/geode/CacheWriter.hpp      |    2 +-
 src/cppcache/include/geode/Cacheable.hpp        |    2 +-
 src/cppcache/include/geode/Cacheable.inl        |    2 +-
 .../include/geode/CacheableBuiltins.hpp         |  106 +-
 src/cppcache/include/geode/CacheableKey.hpp     |   19 +-
 src/cppcache/include/geode/CacheableKey.inl     |    2 +-
 src/cppcache/include/geode/CqAttributes.hpp     |    2 +-
 .../include/geode/CqAttributesFactory.hpp       |    2 +-
 .../include/geode/CqAttributesMutator.hpp       |    2 +-
 src/cppcache/include/geode/CqListener.hpp       |    2 +-
 src/cppcache/include/geode/CqQuery.hpp          |    2 +-
 .../include/geode/CqServiceStatistics.hpp       |    2 +-
 src/cppcache/include/geode/CqStatistics.hpp     |    2 +-
 src/cppcache/include/geode/DataInput.hpp        |    2 +-
 src/cppcache/include/geode/DataOutput.hpp       |    2 +-
 .../include/geode/DistributedSystem.hpp         |    2 +-
 src/cppcache/include/geode/EntryEvent.hpp       |    2 +-
 src/cppcache/include/geode/Exception.hpp        |    4 +-
 src/cppcache/include/geode/ExceptionTypes.hpp   |    2 +-
 src/cppcache/include/geode/Execution.hpp        |    4 +-
 src/cppcache/include/geode/FunctionService.hpp  |   84 +-
 src/cppcache/include/geode/GeodeCppCache.hpp    |    2 +-
 src/cppcache/include/geode/HashFunction.hpp     |    2 +-
 .../include/geode/PartitionResolver.hpp         |  105 +-
 .../include/geode/PdxInstanceFactory.hpp        |    2 +-
 src/cppcache/include/geode/PdxReader.hpp        |    4 +-
 src/cppcache/include/geode/PdxSerializable.hpp  |    4 -
 src/cppcache/include/geode/PdxSerializer.hpp    |    2 +-
 src/cppcache/include/geode/PdxUnreadFields.hpp  |    3 +-
 src/cppcache/include/geode/PdxWrapper.hpp       |    4 -
 src/cppcache/include/geode/PdxWriter.hpp        |    4 +-
 .../include/geode/PersistenceManager.hpp        |    2 +-
 src/cppcache/include/geode/Pool.hpp             |    4 +-
 src/cppcache/include/geode/PoolFactory.hpp      |    3 +-
 src/cppcache/include/geode/Query.hpp            |    2 +-
 src/cppcache/include/geode/QueryService.hpp     |    2 +-
 src/cppcache/include/geode/Region.hpp           |    3 +-
 src/cppcache/include/geode/RegionAttributes.hpp |    5 +-
 src/cppcache/include/geode/RegionEntry.hpp      |    2 +-
 src/cppcache/include/geode/RegionFactory.hpp    |    3 +-
 src/cppcache/include/geode/RegionService.hpp    |    2 +-
 src/cppcache/include/geode/ResultCollector.hpp  |   10 +-
 src/cppcache/include/geode/SelectResults.hpp    |    2 +-
 .../include/geode/SelectResultsIterator.hpp     |    2 +-
 src/cppcache/include/geode/Serializable.hpp     |    4 -
 src/cppcache/include/geode/Serializer.hpp       |   75 +-
 src/cppcache/include/geode/SharedBase.hpp       |   54 -
 src/cppcache/include/geode/SharedPtr.hpp        |   38 -
 src/cppcache/include/geode/SharedPtrHelper.hpp  |   86 -
 src/cppcache/include/geode/TransactionId.hpp    |    7 +-
 src/cppcache/include/geode/TypeHelper.hpp       |  155 --
 src/cppcache/include/geode/UserData.hpp         |    2 +-
 .../geode/UserFunctionExecutionException.hpp    |   64 +-
 .../include/geode/VectorOfSharedBase.hpp        |  173 --
 .../include/geode/WritablePdxInstance.hpp       |  785 ++++-----
 src/cppcache/include/geode/geode_base.hpp       |   26 +-
 src/cppcache/include/geode/geode_globals.hpp    |   14 +-
 src/cppcache/include/geode/geode_types.hpp      |    6 +-
 src/cppcache/include/geode/utils.hpp            |    9 +-
 src/cppcache/integration-test/CacheHelper.cpp   |    4 +-
 src/cppcache/integration-test/DeltaEx.hpp       |    2 +-
 src/cppcache/integration-test/QueryHelper.hpp   |    4 +-
 src/cppcache/integration-test/TallyListener.hpp |    2 +-
 src/cppcache/integration-test/TallyLoader.hpp   |    2 +-
 src/cppcache/integration-test/TallyWriter.hpp   |    2 +-
 .../integration-test/ThinClientDistOps.hpp      |    4 +-
 .../integration-test/ThinClientDurable.hpp      |    2 +-
 .../ThinClientDurableFailover.hpp               |    2 +-
 .../ThinClientDurableInterest.hpp               |    2 +-
 .../ThinClientDurableReconnect.hpp              |    2 +-
 .../integration-test/ThinClientGatewayTest.hpp  |    2 +-
 .../integration-test/ThinClientHelper.hpp       |    1 -
 .../ThinClientListenerWriter.hpp                |    3 +-
 .../ThinClientRIwithlocalRegionDestroy.hpp      |    2 +-
 .../ThinClientTransactionsXA.hpp                |    1 -
 src/cppcache/integration-test/fw_dunit.cpp      |   12 -
 src/cppcache/integration-test/fw_dunit.hpp      |    4 +-
 src/cppcache/integration-test/fw_helper.hpp     |    2 -
 src/cppcache/integration-test/no_cout.hpp       |   83 -
 src/cppcache/integration-test/testCache.cpp     |   86 +-
 .../integration-test/testDataOutput.cpp         |   30 +-
 src/cppcache/integration-test/testDunit.cpp     |    4 +-
 .../integration-test/testEntriesMap.cpp         |    9 +-
 .../integration-test/testExpiration.cpp         |    6 +-
 src/cppcache/integration-test/testFWHelper.cpp  |    9 +-
 src/cppcache/integration-test/testLRUList.cpp   |   11 +-
 .../testOverflowPutGetSqLite.cpp                |   14 +-
 src/cppcache/integration-test/testRegionMap.cpp |   18 +-
 .../integration-test/testSerialization.cpp      |    8 +-
 .../testThinClientConflation.cpp                |    2 +-
 .../integration-test/testThinClientCq.cpp       |    2 +-
 .../integration-test/testThinClientCqDelta.cpp  |    5 +-
 .../testThinClientExecuteFunctionPrSHOP.cpp     |    4 +-
 .../testThinClientHAEventIDMap.cpp              |    2 +-
 .../testThinClientHAPeriodicAck.cpp             |    2 +-
 .../testThinClientInterest1Cacheless.cpp        |    5 +-
 .../testThinClientInterestNotify.cpp            |    5 +-
 .../testThinClientLRUExpiration.cpp             |    2 +-
 .../testThinClientListenerCallbackArgTest.cpp   |    8 +-
 .../testThinClientListenerEvents.cpp            |    3 +-
 .../testThinClientPoolExecuteFunction.cpp       |   28 +-
 .../testThinClientPoolExecuteFunctionPrSHOP.cpp |   32 +-
 ...ClientPoolExecuteFunctionThrowsException.cpp |    2 +-
 .../testThinClientPoolExecuteHAFunction.cpp     |   16 +-
 ...estThinClientPoolExecuteHAFunctionPrSHOP.cpp |   12 +-
 .../testThinClientRemoteQueryRS.cpp             |   24 +-
 .../testThinClientRemoteQuerySS.cpp             |    2 +-
 .../testXmlCacheCreationWithOverFlow.cpp        |  150 +-
 .../testXmlCacheCreationWithPools.cpp           |  121 +-
 .../testXmlCacheCreationWithRefid.cpp           |   28 +-
 src/cppcache/src/AdminRegion.hpp                |   17 +-
 src/cppcache/src/Cache.cpp                      |    3 +-
 src/cppcache/src/CacheImpl.cpp                  |    7 +-
 src/cppcache/src/CacheImpl.hpp                  |   10 +-
 .../src/CacheTransactionManagerImpl.cpp         |   10 +-
 .../src/CacheTransactionManagerImpl.hpp         |   28 +-
 src/cppcache/src/CacheXmlCreation.cpp           |    4 +-
 src/cppcache/src/CacheXmlParser.cpp             |   16 +-
 src/cppcache/src/CacheableObjectPartList.hpp    |    2 +-
 src/cppcache/src/CacheableToken.hpp             |    2 +-
 src/cppcache/src/CachedDeserializableHelper.hpp |    3 +-
 src/cppcache/src/ClientConnectionResponse.hpp   |    4 +-
 src/cppcache/src/ClientMetadata.hpp             |    4 +-
 src/cppcache/src/ClientMetadataService.hpp      |    7 +-
 src/cppcache/src/ClientProxyMembershipID.cpp    |   11 +-
 src/cppcache/src/ClientProxyMembershipID.hpp    |    2 +-
 src/cppcache/src/CqService.hpp                  |   18 +-
 src/cppcache/src/DSMemberForVersionStamp.hpp    |    2 +-
 src/cppcache/src/DistributedSystem.cpp          |    4 -
 src/cppcache/src/DistributedSystemImpl.hpp      |   42 +-
 src/cppcache/src/EnumInfo.hpp                   |    2 +-
 src/cppcache/src/EventIdMap.hpp                 |   10 +-
 src/cppcache/src/EventSource.hpp                |    4 +-
 src/cppcache/src/EvictionController.hpp         |    7 +-
 src/cppcache/src/ExpMapEntry.hpp                |    4 +-
 src/cppcache/src/FarSideEntryOp.hpp             |    2 +-
 src/cppcache/src/FunctionService.cpp            |   11 +-
 src/cppcache/src/GetAllServersResponse.cpp      |    3 -
 src/cppcache/src/GetAllServersResponse.hpp      |    2 +-
 .../InternalCacheTransactionManager2PCImpl.cpp  |    2 +-
 src/cppcache/src/LRUExpMapEntry.hpp             |    4 +-
 src/cppcache/src/LRUList.hpp                    |    4 +-
 src/cppcache/src/LRUMapEntry.hpp                |    4 +-
 src/cppcache/src/LocalRegion.hpp                |    2 +-
 src/cppcache/src/LocatorListResponse.hpp        |    4 +-
 src/cppcache/src/MapEntry.hpp                   |   12 +-
 src/cppcache/src/MapWithLock.hpp                |    6 +-
 src/cppcache/src/MemberListForVersionStamp.hpp  |    6 +-
 src/cppcache/src/PdxFieldType.hpp               |    2 +-
 src/cppcache/src/PdxHelper.cpp                  |    9 +-
 src/cppcache/src/PdxInstanceImpl.cpp            |    6 -
 src/cppcache/src/PdxInstanceImpl.hpp            | 1518 ++++++++---------
 src/cppcache/src/PdxLocalReader.hpp             |    2 +-
 src/cppcache/src/PdxLocalWriter.hpp             |    2 +-
 src/cppcache/src/PdxReaderWithTypeCollector.hpp |    3 +-
 src/cppcache/src/PdxRemotePreservedData.hpp     |    2 +-
 src/cppcache/src/PdxRemoteReader.hpp            |    2 +-
 src/cppcache/src/PdxRemoteWriter.hpp            |    2 +-
 src/cppcache/src/PdxType.hpp                    |    2 +-
 src/cppcache/src/PdxWriterWithTypeCollector.hpp |    5 +-
 src/cppcache/src/PoolAttributes.hpp             |    3 +-
 src/cppcache/src/ProxyCache.cpp                 |    2 +-
 src/cppcache/src/ProxyRegion.hpp                | 1531 +++++++++---------
 src/cppcache/src/ProxyRemoteQueryService.hpp    |    4 +-
 src/cppcache/src/PutAllPartialResult.hpp        |    2 +-
 .../src/PutAllPartialResultServerException.hpp  |   48 +-
 src/cppcache/src/QueueConnectionResponse.hpp    |    2 +-
 src/cppcache/src/RegionCommit.hpp               |    6 +-
 src/cppcache/src/RegionConfig.hpp               |    6 +-
 src/cppcache/src/RegionInternal.hpp             |    6 +-
 src/cppcache/src/RemoteQuery.hpp                |    4 +-
 src/cppcache/src/RemoteQueryService.hpp         |    4 +-
 src/cppcache/src/SharedPtr.cpp                  |   37 -
 src/cppcache/src/StackTrace.hpp                 |    8 +-
 src/cppcache/src/TXCommitMessage.cpp            |   30 +-
 src/cppcache/src/TXCommitMessage.hpp            |    9 +-
 src/cppcache/src/TXEntryState.hpp               |    2 +-
 src/cppcache/src/TcrChunkedContext.hpp          |    6 +-
 .../src/ThinClientCacheDistributionManager.hpp  |    7 +-
 src/cppcache/src/ThinClientPoolDM.hpp           |    2 +-
 src/cppcache/src/ThinClientPoolHADM.hpp         |    2 +-
 src/cppcache/src/ThinClientPoolStickyDM.hpp     |    2 +-
 src/cppcache/src/ThinClientPoolStickyHADM.hpp   |    2 +-
 src/cppcache/src/ThinClientRegion.cpp           |    2 +-
 src/cppcache/src/ThinClientRegion.hpp           |   17 +-
 src/cppcache/src/TombstoneList.hpp              |   10 +-
 src/cppcache/src/TransactionalOperation.cpp     |   13 +-
 src/cppcache/src/TransactionalOperation.hpp     |    2 +-
 src/cppcache/src/UserAttributes.hpp             |    6 +-
 src/cppcache/src/Utils.cpp                      |   95 +-
 src/cppcache/src/Utils.hpp                      |   18 +-
 src/cppcache/src/VectorOfSharedBase.cpp         |  211 ---
 src/cppcache/src/VersionStamp.hpp               |    4 +-
 .../src/VersionedCacheableObjectPartList.hpp    |    2 +-
 src/cppcache/src/dllmain.cpp                    |   22 -
 .../src/statistics/AtomicStatisticsImpl.cpp     |   13 +-
 .../src/statistics/AtomicStatisticsImpl.hpp     |   15 -
 src/cppcache/test/AutoDeleteTest.cpp            |    3 +-
 src/cppcache/test/DataInputTest.cpp             |    4 +-
 src/cppcache/test/DataOutputTest.cpp            |    2 +-
 src/quickstart/cpp/Delta.cpp                    |    2 +-
 src/quickstart/cpp/queryobjects/Portfolio.hpp   |    4 +-
 .../cpp/queryobjects/PortfolioPdx.hpp           |    4 +-
 .../cpp/queryobjects/PortfolioPdxAuto.hpp       |    2 +-
 src/quickstart/cpp/queryobjects/Position.hpp    |    4 +-
 src/quickstart/cpp/queryobjects/PositionPdx.hpp |    4 +-
 .../cpp/queryobjects/PositionPdxAuto.hpp        |    2 +-
 src/tests/cpp/fwklib/FrameworkTest.cpp          |    9 -
 src/tests/cpp/fwklib/FrameworkTest.hpp          |  129 +-
 src/tests/cpp/fwklib/QueryHelper.hpp            |    4 +-
 src/tests/cpp/security/CredentialGenerator.hpp  |   17 +-
 .../security/XmlAuthzCredentialGenerator.hpp    |    6 +-
 src/tests/cpp/testobject/BatchObject.hpp        |    2 +-
 .../cpp/testobject/DeltaFastAssetAccount.hpp    |    3 +-
 src/tests/cpp/testobject/DeltaPSTObject.hpp     |    2 +-
 src/tests/cpp/testobject/DeltaTestImpl.hpp      |    2 +-
 src/tests/cpp/testobject/DeltaTestObj.hpp       |    4 +-
 src/tests/cpp/testobject/EqStruct.hpp           |    2 +-
 src/tests/cpp/testobject/FastAsset.hpp          |    4 +-
 src/tests/cpp/testobject/FastAssetAccount.hpp   |    2 +-
 src/tests/cpp/testobject/InvalidPdxUsage.hpp    |    7 +-
 src/tests/cpp/testobject/NestedPdxObject.hpp    |   14 +-
 src/tests/cpp/testobject/PSTObject.hpp          |    2 +-
 src/tests/cpp/testobject/PdxClassV1.hpp         |   15 +-
 src/tests/cpp/testobject/PdxClassV2.hpp         |   15 +-
 src/tests/cpp/testobject/PdxType.hpp            |    8 +-
 src/tests/cpp/testobject/PdxVersioned1.hpp      |    2 +-
 src/tests/cpp/testobject/PdxVersioned2.hpp      |    2 +-
 src/tests/cpp/testobject/Portfolio.hpp          |    2 +-
 src/tests/cpp/testobject/PortfolioPdx.hpp       |    2 +-
 src/tests/cpp/testobject/Position.hpp           |    2 +-
 src/tests/cpp/testobject/PositionPdx.hpp        |    2 +-
 src/tests/cpp/testobject/TestObject1.hpp        |    2 +-
 src/tests/cpp/testobject/TimestampedObject.hpp  |    3 +-
 src/tests/cpp/testobject/VariousPdxTypes.hpp    |   27 +-
 247 files changed, 2943 insertions(+), 4164 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/clicache/src/CacheFactory.hpp
----------------------------------------------------------------------
diff --git a/src/clicache/src/CacheFactory.hpp b/src/clicache/src/CacheFactory.hpp
index 5133681..ca7f07b 100644
--- a/src/clicache/src/CacheFactory.hpp
+++ b/src/clicache/src/CacheFactory.hpp
@@ -126,14 +126,6 @@ namespace Apache
         static Cache^ GetAnyInstance();
 
         /// <summary>
-        /// Set allocators for non default Microsoft CRT versions.
-        /// </summary>
-        static void SetNewAndDelete()
-        {
-          native::setNewAndDelete(&operator new, &operator delete);
-        }
-
-        /// <summary>
         /// Returns the version of the cache implementation.
         /// For the 1.0 release of Geode, the string returned is <c>1.0</c>.
         /// </summary>

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/clicache/src/impl/AuthenticatedCache.cpp
----------------------------------------------------------------------
diff --git a/src/clicache/src/impl/AuthenticatedCache.cpp b/src/clicache/src/impl/AuthenticatedCache.cpp
index 55b11c4..a8e2b15 100644
--- a/src/clicache/src/impl/AuthenticatedCache.cpp
+++ b/src/clicache/src/impl/AuthenticatedCache.cpp
@@ -111,7 +111,7 @@ namespace Apache
         {
           GC::KeepAlive(m_nativeptr);
         }
-        auto rootRegions = gcnew array<IRegion<TKey, TValue>^>( vrr.size( ) );
+        auto rootRegions = gcnew array<IRegion<TKey, TValue>^>( static_cast<int>(vrr.size( )) );
 
         for( System::Int32 index = 0; index < vrr.size( ); index++ )
         {

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/AttributesFactory.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/AttributesFactory.hpp b/src/cppcache/include/geode/AttributesFactory.hpp
index 8ccb973..fe5363c 100644
--- a/src/cppcache/include/geode/AttributesFactory.hpp
+++ b/src/cppcache/include/geode/AttributesFactory.hpp
@@ -149,7 +149,7 @@ namespace client {
  * @see Region#createSubregion(String, RegionAttributes)
  */
 
-class CPPCACHE_EXPORT AttributesFactory : public SharedBase {
+class CPPCACHE_EXPORT AttributesFactory {
   /**
     * @brief public methods
     */

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/AttributesMutator.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/AttributesMutator.hpp b/src/cppcache/include/geode/AttributesMutator.hpp
index 9765bd0..37c1762 100644
--- a/src/cppcache/include/geode/AttributesMutator.hpp
+++ b/src/cppcache/include/geode/AttributesMutator.hpp
@@ -52,7 +52,7 @@ class CacheWriter;
  * @see RegionAttributes
  * @see AttributesFactory
  */
-class CPPCACHE_EXPORT AttributesMutator : public SharedBase {
+class CPPCACHE_EXPORT AttributesMutator {
  private:
   RegionPtr m_region;
 

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/AuthInitialize.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/AuthInitialize.hpp b/src/cppcache/include/geode/AuthInitialize.hpp
index bde0d7c..569af59 100644
--- a/src/cppcache/include/geode/AuthInitialize.hpp
+++ b/src/cppcache/include/geode/AuthInitialize.hpp
@@ -42,8 +42,7 @@ namespace client {
  * AuthInitialize object) as the <code>security-client-auth-factory</code>
  * system property.
  */
-class CPPCACHE_EXPORT AuthInitialize
-    : public ::apache::geode::client::SharedBase {
+class CPPCACHE_EXPORT AuthInitialize {
  public:
   /**@brief initialize with the given set of security properties
    * and return the credentials for the client as properties.

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/Cache.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/Cache.hpp b/src/cppcache/include/geode/Cache.hpp
index 95b6ed8..30332a6 100644
--- a/src/cppcache/include/geode/Cache.hpp
+++ b/src/cppcache/include/geode/Cache.hpp
@@ -232,10 +232,11 @@ class CPPCACHE_EXPORT Cache : public GeodeCache,
    */
   Cache(const char* name, DistributedSystemPtr sys, const char* id_data,
         bool ignorePdxUnreadFields, bool readPdxSerialized);
+
   std::unique_ptr<CacheImpl> m_cacheImpl;
 
  protected:
-  Cache();
+  Cache() = delete;
 
   static bool isPoolInMultiuserMode(RegionPtr regionPtr);
 

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CacheAttributes.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CacheAttributes.hpp b/src/cppcache/include/geode/CacheAttributes.hpp
index 3363e43..23ce2f6 100644
--- a/src/cppcache/include/geode/CacheAttributes.hpp
+++ b/src/cppcache/include/geode/CacheAttributes.hpp
@@ -53,7 +53,7 @@ class CacheAttributesFactory;
 
 _GF_PTR_DEF_(CacheAttributes, CacheAttributesPtr);
 
-class CPPCACHE_EXPORT CacheAttributes : public SharedBase {
+class CPPCACHE_EXPORT CacheAttributes  {
   /**
    * @brief public static methods
    */

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CacheFactory.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CacheFactory.hpp b/src/cppcache/include/geode/CacheFactory.hpp
index 0bf6b47..885b8d1 100644
--- a/src/cppcache/include/geode/CacheFactory.hpp
+++ b/src/cppcache/include/geode/CacheFactory.hpp
@@ -45,9 +45,7 @@ class CppCacheLibrary;
  * For the default values for the pool attributes see {@link PoolFactory}.
  * To create additional {@link Pool}s see {@link PoolManager}
  */
-class CPPCACHE_EXPORT CacheFactory
-    : public SharedBase,
-      public std::enable_shared_from_this<CacheFactory> {
+class CPPCACHE_EXPORT CacheFactory : public std::enable_shared_from_this<CacheFactory> {
  public:
   /**
    * To create the instance of {@link CacheFactory}

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CacheListener.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CacheListener.hpp b/src/cppcache/include/geode/CacheListener.hpp
index 87ff012..9619d56 100644
--- a/src/cppcache/include/geode/CacheListener.hpp
+++ b/src/cppcache/include/geode/CacheListener.hpp
@@ -22,7 +22,7 @@
 
 #include "geode_globals.hpp"
 #include "geode_types.hpp"
-#include "SharedPtr.hpp"
+#include <memory>
 
 /**
  * @file
@@ -75,10 +75,10 @@ class RegionEvent;
  * @see RegionAttributes::getCacheListener
  * @see CacheListenerException
  */
-class CPPCACHE_EXPORT CacheListener : public SharedBase {
+class CPPCACHE_EXPORT CacheListener {
   /**
-    * @brief public methods
-    */
+   * @brief public methods
+   */
  public:
   /**
    * @brief destructor
@@ -114,7 +114,7 @@ class CPPCACHE_EXPORT CacheListener : public SharedBase {
    *
    * @param event EntryEvent denotes the event object associated with the entry
    * invalidation
-  */
+   */
   virtual void afterInvalidate(const EntryEvent& event);
 
   /**
@@ -170,29 +170,29 @@ class CPPCACHE_EXPORT CacheListener : public SharedBase {
   virtual void afterRegionLive(const RegionEvent& event);
 
   /** Called when the region containing this callback is destroyed, when
-    * the cache is closed.
-    *
-    * <p>Implementations should clean up any external
-    * resources, such as database connections. Any runtime exceptions this
+   * the cache is closed.
+   *
+   * <p>Implementations should clean up any external
+   * resources, such as database connections. Any runtime exceptions this
    * method
-    * throws will be logged.
-    *
-    * <p>It is possible for this method to be called multiple times on a single
-    * callback instance, so implementations must be tolerant of this.
-    *
-    * @see Cache::close
-    * @see Region::destroyRegion
-    */
+   * throws will be logged.
+   *
+   * <p>It is possible for this method to be called multiple times on a single
+   * callback instance, so implementations must be tolerant of this.
+   *
+   * @see Cache::close
+   * @see Region::destroyRegion
+   */
 
   virtual void close(const RegionPtr& region);
   /**
-  * Called when all the endpoints assosiated with region are down.
-  * This will be called when all the endpoints are down for the first time.
-  * If endpoints come up and again go down it will be called again.
-  * This will also be called when all endpoints are down and region is attached
-  * to the pool.
-  * @param region RegionPtr denotes the assosiated region.
-  */
+   * Called when all the endpoints assosiated with region are down.
+   * This will be called when all the endpoints are down for the first time.
+   * If endpoints come up and again go down it will be called again.
+   * This will also be called when all endpoints are down and region is attached
+   * to the pool.
+   * @param region RegionPtr denotes the assosiated region.
+   */
   virtual void afterRegionDisconnected(const RegionPtr& region);
 
  protected:

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CacheLoader.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CacheLoader.hpp b/src/cppcache/include/geode/CacheLoader.hpp
index b205f79..5a1f898 100644
--- a/src/cppcache/include/geode/CacheLoader.hpp
+++ b/src/cppcache/include/geode/CacheLoader.hpp
@@ -53,7 +53,7 @@ namespace client {
  * @see AttributesFactory::setCacheLoader
  * @see RegionAttributes::getCacheLoader
  */
-class CPPCACHE_EXPORT CacheLoader : public SharedBase {
+class CPPCACHE_EXPORT CacheLoader  {
  public:
   /**Loads a value. Application writers should implement this
    * method to customize the loading of a value. This method is called

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CacheStatistics.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CacheStatistics.hpp b/src/cppcache/include/geode/CacheStatistics.hpp
index a646c16..f14fd82 100644
--- a/src/cppcache/include/geode/CacheStatistics.hpp
+++ b/src/cppcache/include/geode/CacheStatistics.hpp
@@ -42,7 +42,7 @@ class LocalRegion;
 *@see Region::getStatistics
 *@see RegionEntry::getStatistics
 */
-class CPPCACHE_EXPORT CacheStatistics : public SharedBase {
+class CPPCACHE_EXPORT CacheStatistics  {
  public:
   CacheStatistics();
 

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CacheTransactionManager.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CacheTransactionManager.hpp b/src/cppcache/include/geode/CacheTransactionManager.hpp
index fb91954..5a5e96a 100644
--- a/src/cppcache/include/geode/CacheTransactionManager.hpp
+++ b/src/cppcache/include/geode/CacheTransactionManager.hpp
@@ -33,8 +33,7 @@ namespace apache {
 namespace geode {
 namespace client {
 
-class CPPCACHE_EXPORT CacheTransactionManager
-    : public apache::geode::client::SharedBase {
+class CPPCACHE_EXPORT CacheTransactionManager {
  public:
   /** Creates a new transaction and associates it with the current thread.
    *

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CacheWriter.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CacheWriter.hpp b/src/cppcache/include/geode/CacheWriter.hpp
index 457ef24..6451b7f 100644
--- a/src/cppcache/include/geode/CacheWriter.hpp
+++ b/src/cppcache/include/geode/CacheWriter.hpp
@@ -87,7 +87,7 @@ class RegionEvent;
  * @see RegionAttributes::getCacheWriter
  * @see AttributesMutator::setCacheWriter
  */
-class CPPCACHE_EXPORT CacheWriter : public SharedBase {
+class CPPCACHE_EXPORT CacheWriter  {
  public:
   /**
    * Called before an entry is updated. The entry update is initiated by a

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/Cacheable.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/Cacheable.hpp b/src/cppcache/include/geode/Cacheable.hpp
index daf398e..8833b29 100644
--- a/src/cppcache/include/geode/Cacheable.hpp
+++ b/src/cppcache/include/geode/Cacheable.hpp
@@ -35,7 +35,7 @@ typedef SerializablePtr CacheablePtr;
 typedef Serializable Cacheable;
 
 template <typename TVALUE>
-inline CacheablePtr createValue(const SharedPtr<TVALUE>& value);
+inline CacheablePtr createValue(const std::shared_ptr<TVALUE>& value);
 
 template <typename TVALUE>
 inline CacheablePtr createValue(const TVALUE* value);

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/Cacheable.inl
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/Cacheable.inl b/src/cppcache/include/geode/Cacheable.inl
index cfde539..68108ac 100644
--- a/src/cppcache/include/geode/Cacheable.inl
+++ b/src/cppcache/include/geode/Cacheable.inl
@@ -37,7 +37,7 @@ inline CacheablePtr Cacheable::create( const PRIM value )
 }
 
 template <typename TVALUE>
-inline CacheablePtr createValue( const SharedPtr< TVALUE >& value )
+inline CacheablePtr createValue( const std::shared_ptr< TVALUE >& value )
 {
   return std::dynamic_pointer_cast<Cacheable>(value);
 }

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CacheableBuiltins.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CacheableBuiltins.hpp b/src/cppcache/include/geode/CacheableBuiltins.hpp
index eda1611..af12149 100644
--- a/src/cppcache/include/geode/CacheableBuiltins.hpp
+++ b/src/cppcache/include/geode/CacheableBuiltins.hpp
@@ -37,6 +37,9 @@ namespace apache {
 namespace geode {
 namespace client {
 
+template <typename Target, int8_t TYPEID>
+class CacheableArrayType;
+
 /** sprintf implementation. */
 extern int gf_sprintf(char* buffer, const char* fmt, ...);
 
@@ -146,24 +149,27 @@ inline void copyArray(TObj* dest, const TObj* src, int32_t length) {
 }
 
 /**
- * Function to copy an array of <code>SharedPtr</code>s from
+ * Function to copy an array of <code>std::shared_ptr</code>s from
  * source to destination.
  */
 template <typename TObj>
-inline void copyArray(SharedPtr<TObj>* dest, const SharedPtr<TObj>* src,
-                      int32_t length) {
+inline void copyArray(std::shared_ptr<TObj>* dest,
+                      const std::shared_ptr<TObj>* src, int32_t length) {
   for (int32_t index = 0; index < length; index++) {
     dest[index] = src[index];
   }
 }
 
 /**
- * Function to copy an array of <code>SharedArrayPtr</code>s from
- * source to destination.
+ * Function to copy an array of
+ * <code>std::shared_ptr<CacheableArrayType<>></code>s from source to
+ * destination.
  */
 template <typename TObj, int8_t TYPEID>
-inline void copyArray(SharedArrayPtr<TObj, TYPEID>* dest,
-                      const SharedArrayPtr<TObj, TYPEID>* src, int32_t length) {
+inline void copyArray(
+    std::shared_ptr<CacheableArrayType<TObj, TYPEID>>* dest,
+    const std::shared_ptr<CacheableArrayType<TObj, TYPEID>>* src,
+    int32_t length) {
   for (int32_t index = 0; index < length; index++) {
     dest[index] = src[index];
   }
@@ -344,7 +350,7 @@ class CacheableContainerType : public Cacheable, public TBase {
   CacheableKeyType<p, GeodeTypeIds::k, tName_##k, tStr_##k, sz>;              \
   typedef CacheableKeyType<p, GeodeTypeIds::k, tName_##k, tStr_##k, sz> _##k; \
   class CPPCACHE_EXPORT k;                                                    \
-  typedef SharedPtr<k> k##Ptr;
+  typedef std::shared_ptr<k> k##Ptr;
 
 // use a class instead of typedef for bug #283
 #define _GF_CACHEABLE_KEY_TYPE_(p, k, sz)                                      \
@@ -371,50 +377,50 @@ class CacheableContainerType : public Cacheable, public TBase {
   TEMPLATE_EXPORT CacheableArrayType<p, GeodeTypeIds::c>; \
   typedef CacheableArrayType<p, GeodeTypeIds::c> _##c;    \
   class CPPCACHE_EXPORT c;                                \
-  typedef SharedArrayPtr<p, GeodeTypeIds::c> c##Ptr;
+  typedef std::shared_ptr<CacheableArrayType<p, GeodeTypeIds::c>> c##Ptr;
 
 // use a class instead of typedef for bug #283
-#define _GF_CACHEABLE_ARRAY_TYPE_(p, c)                                        \
-  class CPPCACHE_EXPORT c : public _##c {                                      \
-   protected:                                                                  \
-    inline c() : _##c() {}                                                     \
-    inline c(int32_t length) : _##c(length) {}                                 \
-    inline c(p* value, int32_t length) : _##c(value, length) {}                \
-    inline c(const p* value, int32_t length, bool copy)                        \
-        : _##c(value, length, true) {}                                         \
-                                                                               \
-   private:                                                                    \
-    /* Private to disable copy constructor and assignment operator. */         \
-    c(const c& other);                                                         \
-    c& operator=(const c& other);                                              \
-                                                                               \
-    FRIEND_STD_SHARED_PTR(c)                                                   \
-                                                                               \
-   public:                                                                     \
-    /** Factory function registered with serialization registry. */            \
-    static Serializable* createDeserializable() { return new c(); }            \
-    /** Factory function to create a new default instance. */                  \
-    inline static c##Ptr create() { return std::make_shared<c>(); }            \
-    /** Factory function to create a cacheable array of given size. */         \
-    inline static c##Ptr create(int32_t length) {                              \
-      return std::make_shared<c>(length);                                      \
-    }                                                                          \
-    /** Create a cacheable array copying from the given array. */              \
-    inline static c##Ptr create(const p* value, int32_t length) {              \
-      return nullptr == value ? nullptr                                        \
-                              : std::make_shared<c>(value, length, true);      \
-    }                                                                          \
-    /**                                                                        \
-     * Create a cacheable array taking ownership of the given array            \
-     * without creating a copy.                                                \
-     *                                                                         \
-     * Note that the application has to ensure that the given array is         \
-     * not deleted (apart from this class) and is allocated on the heap        \
-     * using the "new" operator.                                               \
-     */                                                                        \
-    inline static c##Ptr createNoCopy(p* value, int32_t length) {              \
-      return nullptr == value ? nullptr : std::make_shared<c>(value, length);  \
-    }                                                                          \
+#define _GF_CACHEABLE_ARRAY_TYPE_(p, c)                                          \
+  class CPPCACHE_EXPORT c : public _##c {                                        \
+   protected:                                                                    \
+    inline c() : _##c() {}                                                       \
+    inline c(int32_t length) : _##c(length) {}                                   \
+    inline c(p* value, int32_t length) : _##c(value, length) {}                  \
+    inline c(const p* value, int32_t length, bool copy)                          \
+        : _##c(value, length, true) {}                                           \
+                                                                                 \
+   private:                                                                      \
+    /* Private to disable copy constructor and assignment operator. */           \
+    c(const c& other);                                                           \
+    c& operator=(const c& other);                                                \
+                                                                                 \
+    FRIEND_STD_SHARED_PTR(c)                                                     \
+                                                                                 \
+   public:                                                                       \
+    /** Factory function registered with serialization registry. */              \
+    static Serializable* createDeserializable() { return new c(); }              \
+    /** Factory function to create a new default instance. */                    \
+    inline static c##Ptr create() { return std::make_shared<c>(); }              \
+    /** Factory function to create a cacheable array of given size. */           \
+    inline static c##Ptr create(int32_t length) {                                \
+      return std::make_shared<c>(length);                                        \
+    }                                                                            \
+    /** Create a cacheable array copying from the given array. */                \
+    inline static c##Ptr create(const p* value, int32_t length) {                \
+      return nullptr == value ? nullptr                                          \
+                              : std::make_shared<c>(value, length, true);        \
+    }                                                                            \
+    /**                                                                          \
+     * Create a cacheable array taking ownership of the given array              \
+     * without creating a copy.                                                  \
+     *                                                                           \
+     * Note that the application has to ensure that the given array is           \
+     * not deleted (apart from this class) and is allocated on the heap          \
+     * using the "new" operator.                                                 \
+     */                                                                          \
+    inline static c##Ptr createNoCopy(p* value, int32_t length) {                \
+      return nullptr == value ? nullptr : std::make_shared<c>(value, length);    \
+    }                                                                            \
   };
 
 #define _GF_CACHEABLE_CONTAINER_TYPE_DEF_(p, c)               \

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CacheableKey.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CacheableKey.hpp b/src/cppcache/include/geode/CacheableKey.hpp
index 9666f24..5369b55 100644
--- a/src/cppcache/include/geode/CacheableKey.hpp
+++ b/src/cppcache/include/geode/CacheableKey.hpp
@@ -82,24 +82,25 @@ class CPPCACHE_EXPORT CacheableKey : public Cacheable {
       return s->hashcode();
     }
 
-    inline std::size_t operator()(const std::shared_ptr<CacheableKey>& s) const {
+    inline std::size_t operator()(
+        const std::shared_ptr<CacheableKey>& s) const {
       return s->hashcode();
     }
   };
-  
+
   struct equal_to {
-    inline bool operator()(const CacheableKey &lhs,
-                           const CacheableKey &rhs) const {
+    inline bool operator()(const CacheableKey& lhs,
+                           const CacheableKey& rhs) const {
       return lhs == rhs;
     }
 
-    inline bool operator()(const CacheableKey* &lhs,
-                           const CacheableKey* &rhs) const {
+    inline bool operator()(const CacheableKey*& lhs,
+                           const CacheableKey*& rhs) const {
       return (*lhs) == (*rhs);
     }
 
-    inline bool operator()(const std::shared_ptr<CacheableKey> &lhs,
-                    const std::shared_ptr<CacheableKey> &rhs) const {
+    inline bool operator()(const std::shared_ptr<CacheableKey>& lhs,
+                           const std::shared_ptr<CacheableKey>& rhs) const {
       return (*lhs) == (*rhs);
     }
   };
@@ -111,7 +112,7 @@ class CPPCACHE_EXPORT CacheableKey : public Cacheable {
 };
 
 template <class TKEY>
-inline CacheableKeyPtr createKey(const SharedPtr<TKEY>& value);
+inline CacheableKeyPtr createKey(const std::shared_ptr<TKEY>& value);
 
 template <typename TKEY>
 inline CacheableKeyPtr createKey(const TKEY* value);

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CacheableKey.inl
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CacheableKey.inl b/src/cppcache/include/geode/CacheableKey.inl
index 180bffb..236d528 100644
--- a/src/cppcache/include/geode/CacheableKey.inl
+++ b/src/cppcache/include/geode/CacheableKey.inl
@@ -37,7 +37,7 @@ inline CacheableKeyPtr CacheableKey::create( const PRIM value )
 }
 
 template <class TKEY>
-inline CacheableKeyPtr createKey( const SharedPtr< TKEY >& value )
+inline CacheableKeyPtr createKey( const std::shared_ptr< TKEY >& value )
 {
   return CacheableKeyPtr( value );
 }

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CqAttributes.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CqAttributes.hpp b/src/cppcache/include/geode/CqAttributes.hpp
index 97bf72c..d4dba2a 100644
--- a/src/cppcache/include/geode/CqAttributes.hpp
+++ b/src/cppcache/include/geode/CqAttributes.hpp
@@ -47,7 +47,7 @@ namespace client {
  *
  * For compatibility rules and default values, see {@link CqAttributesFactory}.
  */
-class CPPCACHE_EXPORT CqAttributes : virtual public SharedBase {
+class CPPCACHE_EXPORT CqAttributes {
  public:
   typedef std::vector<std::shared_ptr<CqListener>> listener_container_type;
 

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CqAttributesFactory.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CqAttributesFactory.hpp b/src/cppcache/include/geode/CqAttributesFactory.hpp
index e0d51d6..ce97d43 100644
--- a/src/cppcache/include/geode/CqAttributesFactory.hpp
+++ b/src/cppcache/include/geode/CqAttributesFactory.hpp
@@ -53,7 +53,7 @@ namespace client {
  * @see CqAttributes
  *
  */
-class CPPCACHE_EXPORT CqAttributesFactory : public SharedBase {
+class CPPCACHE_EXPORT CqAttributesFactory  {
  public:
   /**
    * Creates a new instance of AttributesFactory ready to create a

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CqAttributesMutator.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CqAttributesMutator.hpp b/src/cppcache/include/geode/CqAttributesMutator.hpp
index 97cec1a..9f910f4 100644
--- a/src/cppcache/include/geode/CqAttributesMutator.hpp
+++ b/src/cppcache/include/geode/CqAttributesMutator.hpp
@@ -40,7 +40,7 @@ namespace client {
  * of certain CQ attributes after the CQ has been created.
  *
  */
-class CPPCACHE_EXPORT CqAttributesMutator : virtual public SharedBase {
+class CPPCACHE_EXPORT CqAttributesMutator {
  public:
   /**
    * Adds a CQ listener to the end of the list of CQ listeners on this CqQuery.

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CqListener.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CqListener.hpp b/src/cppcache/include/geode/CqListener.hpp
index 8396a36..409c06e 100644
--- a/src/cppcache/include/geode/CqListener.hpp
+++ b/src/cppcache/include/geode/CqListener.hpp
@@ -43,7 +43,7 @@ namespace client {
  * is an event satisfied by the CQ and the other called when there is an
  * error during CQ processing.
  */
-class CPPCACHE_EXPORT CqListener : public SharedBase {
+class CPPCACHE_EXPORT CqListener  {
  public:
   /**
    * This method is invoked when an event is occurred on the region

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CqQuery.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CqQuery.hpp b/src/cppcache/include/geode/CqQuery.hpp
index 7f587cd..e95b427 100644
--- a/src/cppcache/include/geode/CqQuery.hpp
+++ b/src/cppcache/include/geode/CqQuery.hpp
@@ -50,7 +50,7 @@ namespace client {
  * operate on the same <code>CqQuery</code> object concurrently rather should
  * have their own <code>CqQuery</code> objects.
  */
-class CPPCACHE_EXPORT CqQuery : public SharedBase {
+class CPPCACHE_EXPORT CqQuery  {
  public:
   /**
    * Get the query string provided when a new Query was created from a

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CqServiceStatistics.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CqServiceStatistics.hpp b/src/cppcache/include/geode/CqServiceStatistics.hpp
index 3ae2f5b..9c2a103 100644
--- a/src/cppcache/include/geode/CqServiceStatistics.hpp
+++ b/src/cppcache/include/geode/CqServiceStatistics.hpp
@@ -37,7 +37,7 @@ namespace client {
  * This class provides methods to get aggregate statistical information
  * about the CQs of a client.
  */
-class CPPCACHE_EXPORT CqServiceStatistics : public SharedBase {
+class CPPCACHE_EXPORT CqServiceStatistics  {
  public:
   /**
    * Get the number of CQs currently active.

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/CqStatistics.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/CqStatistics.hpp b/src/cppcache/include/geode/CqStatistics.hpp
index ea446e8..4c16292 100644
--- a/src/cppcache/include/geode/CqStatistics.hpp
+++ b/src/cppcache/include/geode/CqStatistics.hpp
@@ -42,7 +42,7 @@ namespace client {
  * represented by the CqQuery object.
  *
  */
-class CPPCACHE_EXPORT CqStatistics : public SharedBase {
+class CPPCACHE_EXPORT CqStatistics {
  public:
   /**
    * Get number of Insert events qualified by this CQ.

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/DataInput.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/DataInput.hpp b/src/cppcache/include/geode/DataInput.hpp
index cfc3e1d..1976dde 100644
--- a/src/cppcache/include/geode/DataInput.hpp
+++ b/src/cppcache/include/geode/DataInput.hpp
@@ -595,7 +595,7 @@ class CPPCACHE_EXPORT DataInput {
    * @see staticCast
    */
   template <class PTR>
-  inline void readObject(SharedPtr<PTR>& ptr,
+  inline void readObject(std::shared_ptr<PTR>& ptr,
                          bool throwOnError = DINP_THROWONERROR_DEFAULT) {
     SerializablePtr sPtr;
     readObjectInternal(sPtr);

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/DataOutput.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/DataOutput.hpp b/src/cppcache/include/geode/DataOutput.hpp
index bba752f..c087c4d 100644
--- a/src/cppcache/include/geode/DataOutput.hpp
+++ b/src/cppcache/include/geode/DataOutput.hpp
@@ -579,7 +579,7 @@ class CPPCACHE_EXPORT DataOutput {
    *   to be written
    */
   template <class PTR>
-  void writeObject(const SharedPtr<PTR>& objptr, bool isDelta = false) {
+  void writeObject(const std::shared_ptr<PTR>& objptr, bool isDelta = false) {
     writeObjectInternal(objptr.get(), isDelta);
   }
 

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/DistributedSystem.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/DistributedSystem.hpp b/src/cppcache/include/geode/DistributedSystem.hpp
index 601c0f9..c633616 100644
--- a/src/cppcache/include/geode/DistributedSystem.hpp
+++ b/src/cppcache/include/geode/DistributedSystem.hpp
@@ -47,7 +47,7 @@ class CacheRegionHelper;
 class DiffieHellman;
 class TcrConnection;
 
-class CPPCACHE_EXPORT DistributedSystem : public SharedBase {
+class CPPCACHE_EXPORT DistributedSystem {
   /**
    * @brief public methods
    */

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/EntryEvent.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/EntryEvent.hpp b/src/cppcache/include/geode/EntryEvent.hpp
index bd7192c..43cd355 100644
--- a/src/cppcache/include/geode/EntryEvent.hpp
+++ b/src/cppcache/include/geode/EntryEvent.hpp
@@ -34,7 +34,7 @@ namespace client {
 
 /** Represents an entry event affecting an entry, including its identity and the
  * the circumstances of the event. */
-class CPPCACHE_EXPORT EntryEvent : public apache::geode::client::SharedBase {
+class CPPCACHE_EXPORT EntryEvent {
  protected:
   RegionPtr m_region;      /**< Region */
   CacheableKeyPtr m_key;   /**< Cacheable key */

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/Exception.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/Exception.hpp b/src/cppcache/include/geode/Exception.hpp
index f712dc4..4bb88f7 100644
--- a/src/cppcache/include/geode/Exception.hpp
+++ b/src/cppcache/include/geode/Exception.hpp
@@ -34,7 +34,7 @@ namespace client {
 #define GF_EX_MSG_LIMIT 2048
 
 class Exception;
-typedef SharedPtr<Exception> ExceptionPtr;
+typedef std::shared_ptr<Exception> ExceptionPtr;
 
 class DistributedSystem;
 
@@ -42,7 +42,7 @@ class DistributedSystem;
  * @class Exception Exception.hpp
  * A description of an exception that occurred during a cache operation.
  */
-class CPPCACHE_EXPORT Exception : public SharedBase {
+class CPPCACHE_EXPORT Exception {
   /**
    * @brief public methods
    */

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/ExceptionTypes.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/ExceptionTypes.hpp b/src/cppcache/include/geode/ExceptionTypes.hpp
index 19e0346..86cdaf4 100644
--- a/src/cppcache/include/geode/ExceptionTypes.hpp
+++ b/src/cppcache/include/geode/ExceptionTypes.hpp
@@ -34,7 +34,7 @@ namespace client {
 #define _GF_EXCEPTION_DEF(x)                                                 \
   const char _exception_name_##x[] = "apache::geode::client::" #x;           \
   class x;                                                                   \
-  typedef SharedPtr<x> x##Ptr;                                               \
+  typedef std::shared_ptr<x> x##Ptr;                                         \
   class CPPCACHE_EXPORT x : public apache::geode::client::Exception {        \
    public:                                                                   \
     x(const char* msg1, const char* msg2 = nullptr, bool forceStack = false, \

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/Execution.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/Execution.hpp b/src/cppcache/include/geode/Execution.hpp
index 5b6ab97..71eabdc 100644
--- a/src/cppcache/include/geode/Execution.hpp
+++ b/src/cppcache/include/geode/Execution.hpp
@@ -28,7 +28,7 @@
 #include "geode_globals.hpp"
 #include "geode_types.hpp"
 #include "VectorT.hpp"
-#include "SharedPtr.hpp"
+#include <memory>
 #include "CacheableBuiltins.hpp"
 #include "ResultCollector.hpp"
 
@@ -45,7 +45,7 @@ namespace client {
  * @see FunctionService
  */
 
-class CPPCACHE_EXPORT Execution : public SharedBase {
+class CPPCACHE_EXPORT Execution {
  public:
   /**
    * Specifies a data filter of routing objects for selecting the Geode

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/FunctionService.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/FunctionService.hpp b/src/cppcache/include/geode/FunctionService.hpp
index 9000935..36fffdd 100644
--- a/src/cppcache/include/geode/FunctionService.hpp
+++ b/src/cppcache/include/geode/FunctionService.hpp
@@ -1,8 +1,3 @@
-#pragma once
-
-#ifndef GEODE_FUNCTIONSERVICE_H_
-#define GEODE_FUNCTIONSERVICE_H_
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -20,10 +15,10 @@
  * limitations under the License.
  */
 
-/*
- * The specification of function behaviors is found in the corresponding
- * .cpp file.
- */
+#pragma once
+
+#ifndef GEODE_FUNCTIONSERVICE_H_
+#define GEODE_FUNCTIONSERVICE_H_
 
 #include "geode_globals.hpp"
 #include "geode_types.hpp"
@@ -33,23 +28,16 @@
  * @file
  */
 
-// macros to resolve ambiguity between PoolPtr and RegionServicePtr
-#define GF_TYPE_IS_POOL(T)                          \
-  apache::geode::client::TypeHelper::SuperSubclass< \
-      apache::geode::client::Pool, T>::result
-#define GF_TYPE_IS_POOL_TYPE(T) \
-  apache::geode::client::TypeHelper::YesNoType<GF_TYPE_IS_POOL(T)>::value
-
 namespace apache {
 namespace geode {
 namespace client {
+
 /**
  * @class FunctionService FunctionService.hpp
  * entry point for function execution
  * @see Execution
  */
-
-class CPPCACHE_EXPORT FunctionService : public SharedBase {
+class CPPCACHE_EXPORT FunctionService {
  public:
   /**
    * Returns a {@link Execution} object that can be used to execute a data
@@ -106,11 +94,6 @@ class CPPCACHE_EXPORT FunctionService : public SharedBase {
     return onServerWithCache(cache);
   }
 
-  template <typename T>
-  static ExecutionPtr onServer(const SharedPtr<T>& poolOrCache) {
-    return onServer(poolOrCache, GF_TYPE_IS_POOL_TYPE(T));
-  }
-
   /**
    * Returns a {@link Execution} object that can be used to execute a data
    * independent function on all the servers in the provided {@link Pool}.
@@ -129,28 +112,23 @@ class CPPCACHE_EXPORT FunctionService : public SharedBase {
   }
 
   /**
-  * Returns a {@link Execution} object that can be used to execute a data
-  * independent function on all the servers where Cache is attached.
-  * If one of the servers goes down while dispatching or executing the function
-  * on the server, an Exception will be thrown.
-  *
-  * @param cache
-  *        the {@link Cache} where function need to execute.
-  * @return Execution
-  * @throws NullPointerException
-  *                 if Pool instance passed in is nullptr
-  * @throws UnsupportedOperationException
-  *                 if Pool is in multiusersecure Mode
-  */
+   * Returns a {@link Execution} object that can be used to execute a data
+   * independent function on all the servers where Cache is attached.
+   * If one of the servers goes down while dispatching or executing the function
+   * on the server, an Exception will be thrown.
+   *
+   * @param cache
+   *        the {@link Cache} where function need to execute.
+   * @return Execution
+   * @throws NullPointerException
+   *                 if Pool instance passed in is nullptr
+   * @throws UnsupportedOperationException
+   *                 if Pool is in multiusersecure Mode
+   */
   inline static ExecutionPtr onServers(const RegionServicePtr& cache) {
     return onServersWithCache(cache);
   }
 
-  template <typename T>
-  static ExecutionPtr onServers(const SharedPtr<T>& poolOrCache) {
-    return onServers(poolOrCache, GF_TYPE_IS_POOL_TYPE(T));
-  }
-
   virtual ~FunctionService() {}
 
  private:
@@ -161,30 +139,6 @@ class CPPCACHE_EXPORT FunctionService : public SharedBase {
   static ExecutionPtr onServersWithPool(const PoolPtr& pool);
 
   static ExecutionPtr onServersWithCache(const RegionServicePtr& cache);
-
-  template <typename T>
-  static ExecutionPtr onServer(const SharedPtr<T>& pool,
-                               TypeHelper::yes_type isPool) {
-    return onServerWithPool(pool);
-  }
-
-  template <typename T>
-  static ExecutionPtr onServer(const SharedPtr<T>& cache,
-                               TypeHelper::no_type isPool) {
-    return onServerWithCache(cache);
-  }
-
-  template <typename T>
-  static ExecutionPtr onServers(const SharedPtr<T>& pool,
-                                TypeHelper::yes_type isPool) {
-    return onServersWithPool(pool);
-  }
-
-  template <typename T>
-  static ExecutionPtr onServers(const SharedPtr<T>& cache,
-                                TypeHelper::no_type isPool) {
-    return onServersWithCache(cache);
-  }
 };
 }  // namespace client
 }  // namespace geode

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/GeodeCppCache.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/GeodeCppCache.hpp b/src/cppcache/include/geode/GeodeCppCache.hpp
index 1068f2e..5a3ff56 100644
--- a/src/cppcache/include/geode/GeodeCppCache.hpp
+++ b/src/cppcache/include/geode/GeodeCppCache.hpp
@@ -67,7 +67,7 @@
 #include "ResultCollector.hpp"
 #include "ResultSet.hpp"
 #include "Serializable.hpp"
-#include "SharedPtr.hpp"
+#include <memory>
 #include "StructSet.hpp"
 #include "UserData.hpp"
 #include "VectorT.hpp"

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/HashFunction.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/HashFunction.hpp b/src/cppcache/include/geode/HashFunction.hpp
index d7c85b7..7abd2f8 100644
--- a/src/cppcache/include/geode/HashFunction.hpp
+++ b/src/cppcache/include/geode/HashFunction.hpp
@@ -21,7 +21,7 @@
  */
 
 #include "geode_globals.hpp"
-#include "SharedPtr.hpp"
+#include <memory>
 #include "CacheableKey.hpp"
 
 /** @file

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/PartitionResolver.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/PartitionResolver.hpp b/src/cppcache/include/geode/PartitionResolver.hpp
index 48d3c7c..3a4f1b6 100644
--- a/src/cppcache/include/geode/PartitionResolver.hpp
+++ b/src/cppcache/include/geode/PartitionResolver.hpp
@@ -20,7 +20,7 @@
  * limitations under the License.
  */
 
-#include "SharedPtr.hpp"
+#include <memory>
 #include "Cacheable.hpp"
 #include <string>
 
@@ -31,72 +31,71 @@ namespace client {
 class EntryEvent;
 
 /**
-* Implementers of interface <code>PartitionResolver</code> enable custom
-* partitioning on the <code>PartitionedRegion</code>.
-* 1. The Key class or callback arg can implement PartitionResolver interface to
-* enable custom partitioning OR
-* 2. Configure your own PartitionResolver class in partition attributes (For
-* instance when the Key is a primitive type or String) Implement the
-* appropriate equals - For all implementations, you need to be sure to code the
-* class equals method so it properly verifies equality for the
-* PartitionResolver implementation. This might mean verifying that class names
-* are the same or that the returned routing objects are the same etc.. When you
-* initiate the partitioned region on multiple nodes, Geode uses the equals
-* method to ensure you are using the same PartitionResolver implementation for
-* all of the nodes for the region.
-* Geode uses the routing object's hashCode to determine where the data is
-* being managed. Say, for example, you want to colocate all Trades by month and
-* year.The key is implemented by TradeKey class which also implements the
-* PartitionResolver interface.
-* public class TradeKey implements PartitionResolver {<br>
-* &nbsp &nbsp private String tradeID;<br>
-* &nbsp &nbsp private Month month ;<br>
-* &nbsp &nbsp private Year year ;<br>
-*
-* &nbsp &nbsp public TradingKey(){ } <br>
-* &nbsp &nbsp public TradingKey(Month month, Year year){<br>
-* &nbsp &nbsp &nbsp &nbsp this.month = month;<br>
-* &nbsp &nbsp &nbsp &nbsp this.year = year;<br>
-* &nbsp &nbsp } <br>
-* &nbsp &nbsp public Serializable getRoutingObject(EntryOperation
-* opDetails){<br>
-* &nbsp &nbsp &nbsp &nbsp return this.month + this.year;<br>
-* &nbsp &nbsp }<br> }<br>
-*
-* In the example above, all trade entries with the same month and year are
-* guaranteed to be colocated.
-*/
-class CPPCACHE_EXPORT PartitionResolver : public SharedBase {
+ * Implementers of interface <code>PartitionResolver</code> enable custom
+ * partitioning on the <code>PartitionedRegion</code>.
+ * 1. The Key class or callback arg can implement PartitionResolver interface to
+ * enable custom partitioning OR
+ * 2. Configure your own PartitionResolver class in partition attributes (For
+ * instance when the Key is a primitive type or String) Implement the
+ * appropriate equals - For all implementations, you need to be sure to code the
+ * class equals method so it properly verifies equality for the
+ * PartitionResolver implementation. This might mean verifying that class names
+ * are the same or that the returned routing objects are the same etc.. When you
+ * initiate the partitioned region on multiple nodes, Geode uses the equals
+ * method to ensure you are using the same PartitionResolver implementation for
+ * all of the nodes for the region.
+ * Geode uses the routing object's hashCode to determine where the data is
+ * being managed. Say, for example, you want to colocate all Trades by month and
+ * year.The key is implemented by TradeKey class which also implements the
+ * PartitionResolver interface.
+ * public class TradeKey implements PartitionResolver {<br>
+ * &nbsp &nbsp private String tradeID;<br>
+ * &nbsp &nbsp private Month month ;<br>
+ * &nbsp &nbsp private Year year ;<br>
+ *
+ * &nbsp &nbsp public TradingKey(){ } <br>
+ * &nbsp &nbsp public TradingKey(Month month, Year year){<br>
+ * &nbsp &nbsp &nbsp &nbsp this.month = month;<br>
+ * &nbsp &nbsp &nbsp &nbsp this.year = year;<br>
+ * &nbsp &nbsp } <br>
+ * &nbsp &nbsp public Serializable getRoutingObject(EntryOperation
+ * opDetails){<br>
+ * &nbsp &nbsp &nbsp &nbsp return this.month + this.year;<br>
+ * &nbsp &nbsp }<br> }<br>
+ *
+ * In the example above, all trade entries with the same month and year are
+ * guaranteed to be colocated.
+ */
+class CPPCACHE_EXPORT PartitionResolver {
   /**
-  * @brief public methods
-  */
+   * @brief public methods
+   */
 
  public:
   /**
-  * @brief destructor
-  */
+   * @brief destructor
+   */
   virtual ~PartitionResolver();
 
   /**
-  * Returns the name of the PartitionResolver
-  * @return String name
-  */
+   * Returns the name of the PartitionResolver
+   * @return String name
+   */
   virtual const char* getName();
 
   /**
-  * @param opDetails the detail of the entry event
-  * @throws RuntimeException - any exception thrown will terminate the operation
-  * and the exception will be passed to the
-  * calling thread.
-  * @return object associated with entry event which allows the Partitioned
-  * Region to store associated data together
-  */
+   * @param opDetails the detail of the entry event
+   * @throws RuntimeException - any exception thrown will terminate the
+   * operation and the exception will be passed to the calling thread.
+   * @return object associated with entry event which allows the Partitioned
+   * Region to store associated data together
+   */
   virtual CacheableKeyPtr getRoutingObject(const EntryEvent& opDetails) = 0;
 
  protected:
   /**
-  * @brief constructors
-  */
+   * @brief constructors
+   */
   PartitionResolver();
 
  private:

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/PdxInstanceFactory.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/PdxInstanceFactory.hpp b/src/cppcache/include/geode/PdxInstanceFactory.hpp
index 86f43ae..349c82f 100644
--- a/src/cppcache/include/geode/PdxInstanceFactory.hpp
+++ b/src/cppcache/include/geode/PdxInstanceFactory.hpp
@@ -42,7 +42,7 @@ namespace client {
  * multiple factories or use {@link PdxInstance#createWriter} to create
  * subsequent instances.
  */
-class CPPCACHE_EXPORT PdxInstanceFactory : public SharedBase {
+class CPPCACHE_EXPORT PdxInstanceFactory {
  public:
   /**
    * @brief destructor

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/PdxReader.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/PdxReader.hpp b/src/cppcache/include/geode/PdxReader.hpp
index d448064..8fc763c 100644
--- a/src/cppcache/include/geode/PdxReader.hpp
+++ b/src/cppcache/include/geode/PdxReader.hpp
@@ -28,7 +28,7 @@ namespace geode {
 namespace client {
 
 class PdxReader;
-typedef SharedPtr<PdxReader> PdxReaderPtr;
+typedef std::shared_ptr<PdxReader> PdxReaderPtr;
 
 /**
  * A PdxReader will be passed to PdxSerializable.fromData or
@@ -53,7 +53,7 @@ typedef SharedPtr<PdxReader> PdxReaderPtr;
  * @note Custom implementations of PdxReader are not subject
  *       to this restriction.
  */
-class CPPCACHE_EXPORT PdxReader : public SharedBase {
+class CPPCACHE_EXPORT PdxReader {
  public:
   /**
    * @brief constructors

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/PdxSerializable.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/PdxSerializable.hpp b/src/cppcache/include/geode/PdxSerializable.hpp
index d782d9c..e38abbc 100644
--- a/src/cppcache/include/geode/PdxSerializable.hpp
+++ b/src/cppcache/include/geode/PdxSerializable.hpp
@@ -95,10 +95,6 @@ class CPPCACHE_EXPORT PdxSerializable : public CacheableKey {
    * Display this object as 'string', which depends on the implementation in
    * the subclasses.
    * The default implementation renders the classname.
-   *
-   * The return value may be a temporary, so the caller has to ensure that
-   * the SharedPtr count does not go down to zero by storing the result
-   * in a variable or otherwise.
    */
   virtual CacheableStringPtr toString() const;
 

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/PdxSerializer.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/PdxSerializer.hpp b/src/cppcache/include/geode/PdxSerializer.hpp
index 09f9cf9..f2a0e94 100644
--- a/src/cppcache/include/geode/PdxSerializer.hpp
+++ b/src/cppcache/include/geode/PdxSerializer.hpp
@@ -39,7 +39,7 @@ typedef void (*UserDeallocator)(void*, const char*);
  */
 typedef uint32_t (*UserObjectSizer)(void*, const char*);
 
-class CPPCACHE_EXPORT PdxSerializer : public SharedBase {
+class CPPCACHE_EXPORT PdxSerializer  {
   /**
    * The PdxSerializer class allows domain classes to be
    * serialized and deserialized as PDXs without modification

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/PdxUnreadFields.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/PdxUnreadFields.hpp b/src/cppcache/include/geode/PdxUnreadFields.hpp
index 25405d6..ceaf902 100644
--- a/src/cppcache/include/geode/PdxUnreadFields.hpp
+++ b/src/cppcache/include/geode/PdxUnreadFields.hpp
@@ -21,7 +21,6 @@
  */
 
 #include "geode_base.hpp"
-#include "SharedBase.hpp"
 
 namespace apache {
 namespace geode {
@@ -41,7 +40,7 @@ namespace client {
  * This should only happen when a domain class has changed by adding or removing
  *one or more fields.
  **/
-class CPPCACHE_EXPORT PdxUnreadFields : public SharedBase {
+class CPPCACHE_EXPORT PdxUnreadFields {
  public:
   PdxUnreadFields() {}
   virtual ~PdxUnreadFields() {}

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/PdxWrapper.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/PdxWrapper.hpp b/src/cppcache/include/geode/PdxWrapper.hpp
index 3f78549..4212328 100644
--- a/src/cppcache/include/geode/PdxWrapper.hpp
+++ b/src/cppcache/include/geode/PdxWrapper.hpp
@@ -104,10 +104,6 @@ class CPPCACHE_EXPORT PdxWrapper : public PdxSerializable {
    * Display this object as 'string', which depends on the implementation in
    * the subclasses.
    * The default implementation renders the classname.
-   *
-   * The return value may be a temporary, so the caller has to ensure that
-   * the SharedPtr count does not go down to zero by storing the result
-   * in a variable or otherwise.
    */
   CacheableStringPtr toString() const;
 

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/PdxWriter.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/PdxWriter.hpp b/src/cppcache/include/geode/PdxWriter.hpp
index 03b2cea..c4add8f 100644
--- a/src/cppcache/include/geode/PdxWriter.hpp
+++ b/src/cppcache/include/geode/PdxWriter.hpp
@@ -30,7 +30,7 @@ namespace geode {
 namespace client {
 
 class PdxWriter;
-typedef SharedPtr<PdxWriter> PdxWriterPtr;
+typedef std::shared_ptr<PdxWriter> PdxWriterPtr;
 
 /**
  * A PdxWriter will be passed to PdxSerializable.toData
@@ -38,7 +38,7 @@ typedef SharedPtr<PdxWriter> PdxWriterPtr;
  * member
  * fields using this abstract class. This class is implemented by Native Client.
  */
-class CPPCACHE_EXPORT PdxWriter : public SharedBase {
+class CPPCACHE_EXPORT PdxWriter {
  public:
   /**
    * @brief constructors

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/PersistenceManager.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/PersistenceManager.hpp b/src/cppcache/include/geode/PersistenceManager.hpp
index fc48d96..185a495 100644
--- a/src/cppcache/include/geode/PersistenceManager.hpp
+++ b/src/cppcache/include/geode/PersistenceManager.hpp
@@ -49,7 +49,7 @@ typedef PersistenceManagerPtr (*getPersistenceManagerInstance)(
  * A specific disk storage implementation will implement all the methods
  * described here.
  */
-class CPPCACHE_EXPORT PersistenceManager : public SharedBase {
+class CPPCACHE_EXPORT PersistenceManager {
   /**
    * @brief public methods
    */

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/Pool.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/Pool.hpp b/src/cppcache/include/geode/Pool.hpp
index 3e4342c..e3a0d7d 100644
--- a/src/cppcache/include/geode/Pool.hpp
+++ b/src/cppcache/include/geode/Pool.hpp
@@ -21,7 +21,6 @@
  */
 
 #include "geode_globals.hpp"
-#include "SharedBase.hpp"
 #include "geode_types.hpp"
 #include "CacheableBuiltins.hpp"
 #include "Cache.hpp"
@@ -49,8 +48,7 @@ class PoolAttributes;
  *
  *
  */
-class CPPCACHE_EXPORT Pool : public SharedBase,
-                             public std::enable_shared_from_this<Pool> {
+class CPPCACHE_EXPORT Pool : public std::enable_shared_from_this<Pool> {
  public:
   /**
    * Gets the name of the connection pool

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/PoolFactory.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/PoolFactory.hpp b/src/cppcache/include/geode/PoolFactory.hpp
index 482b4a1..3d39009 100644
--- a/src/cppcache/include/geode/PoolFactory.hpp
+++ b/src/cppcache/include/geode/PoolFactory.hpp
@@ -21,7 +21,6 @@
  */
 
 #include "geode_globals.hpp"
-#include "SharedBase.hpp"
 #include "geode_types.hpp"
 #include "Pool.hpp"
 
@@ -63,7 +62,7 @@ class PoolAttributes;
  * </ul>
  *
  */
-class CPPCACHE_EXPORT PoolFactory : public SharedBase {
+class CPPCACHE_EXPORT PoolFactory  {
  public:
   /**
    * The default amount of time, in milliseconds, which we will wait for a free

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/Query.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/Query.hpp b/src/cppcache/include/geode/Query.hpp
index ed91cbe..7b0ea8f 100644
--- a/src/cppcache/include/geode/Query.hpp
+++ b/src/cppcache/include/geode/Query.hpp
@@ -45,7 +45,7 @@ namespace client {
  * operate on the same <code>Query</code> object concurrently rather should
  * have their own <code>Query</code> objects.
  */
-class CPPCACHE_EXPORT Query : public SharedBase {
+class CPPCACHE_EXPORT Query {
  public:
   /**
    * Executes the OQL Query on the cache server and returns the results.

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/QueryService.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/QueryService.hpp b/src/cppcache/include/geode/QueryService.hpp
index 5065c9f..a61b974 100644
--- a/src/cppcache/include/geode/QueryService.hpp
+++ b/src/cppcache/include/geode/QueryService.hpp
@@ -43,7 +43,7 @@ namespace client {
  * A Query is created from a QueryService and executed on the server
  * returning a SelectResults which can be either a ResultSet or a StructSet.
  */
-class CPPCACHE_EXPORT QueryService : public SharedBase {
+class CPPCACHE_EXPORT QueryService {
  public:
   typedef std::vector<CqQueryPtr> query_container_type;
 

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/Region.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/Region.hpp b/src/cppcache/include/geode/Region.hpp
index 5f8a31d..b7fc10a 100644
--- a/src/cppcache/include/geode/Region.hpp
+++ b/src/cppcache/include/geode/Region.hpp
@@ -84,8 +84,7 @@ namespace client {
 *
 * @see RegionAttributes
 */
-class CPPCACHE_EXPORT Region : public std::enable_shared_from_this<Region>,
-                               public SharedBase {
+class CPPCACHE_EXPORT Region : public std::enable_shared_from_this<Region> {
   /** @brief Public Methods
   */
  public:

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/RegionAttributes.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/RegionAttributes.hpp b/src/cppcache/include/geode/RegionAttributes.hpp
index ade2cc2..9d24293 100644
--- a/src/cppcache/include/geode/RegionAttributes.hpp
+++ b/src/cppcache/include/geode/RegionAttributes.hpp
@@ -312,7 +312,7 @@ class CPPCACHE_EXPORT RegionAttributes : public Serializable {
    * @return true if concurrent update checks are turned on
    */
   bool getConcurrencyChecksEnabled() { return m_isConcurrencyChecksEnabled; }
-
+  const RegionAttributes& operator=(const RegionAttributes&) = delete;
  private:
   // Helper function that safely compares two attribute string
   // taking into consideration the fact the one or the other
@@ -348,6 +348,7 @@ class CPPCACHE_EXPORT RegionAttributes : public Serializable {
   RegionAttributes(const RegionAttributes& rhs);
   RegionAttributes();
 
+
   ExpirationAction::Action m_regionTimeToLiveExpirationAction;
   ExpirationAction::Action m_regionIdleTimeoutExpirationAction;
   ExpirationAction::Action m_entryTimeToLiveExpirationAction;
@@ -393,8 +394,8 @@ class CPPCACHE_EXPORT RegionAttributes : public Serializable {
   friend class RegionInternal;
   friend class RegionXmlCreation;
 
+
  private:
-  const RegionAttributes& operator=(const RegionAttributes&);
 
   FRIEND_STD_SHARED_PTR(RegionAttributes)
 };

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/RegionEntry.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/RegionEntry.hpp b/src/cppcache/include/geode/RegionEntry.hpp
index b6f2443..edd5e78 100644
--- a/src/cppcache/include/geode/RegionEntry.hpp
+++ b/src/cppcache/include/geode/RegionEntry.hpp
@@ -48,7 +48,7 @@ class RegionInternal;
  * invocation, or an <code>EntryDestroyedException</code> if the entry has been
  * destroyed.
  */
-class CPPCACHE_EXPORT RegionEntry : public SharedBase {
+class CPPCACHE_EXPORT RegionEntry {
  public:
   /** Returns the key for this entry.
    *

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/RegionFactory.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/RegionFactory.hpp b/src/cppcache/include/geode/RegionFactory.hpp
index b2729a2..4894bdf 100644
--- a/src/cppcache/include/geode/RegionFactory.hpp
+++ b/src/cppcache/include/geode/RegionFactory.hpp
@@ -32,8 +32,7 @@ namespace geode {
 namespace client {
 class CacheImpl;
 class CPPCACHE_EXPORT RegionFactory
-    : public SharedBase,
-      public std::enable_shared_from_this<RegionFactory> {
+    : public std::enable_shared_from_this<RegionFactory> {
  public:
   /*
    * To create the (@link Region}.

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/RegionService.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/RegionService.hpp b/src/cppcache/include/geode/RegionService.hpp
index f031141..468d602 100644
--- a/src/cppcache/include/geode/RegionService.hpp
+++ b/src/cppcache/include/geode/RegionService.hpp
@@ -57,7 +57,7 @@ class QueryService;
  *
  */
 
-class CPPCACHE_EXPORT RegionService : public SharedBase {
+class CPPCACHE_EXPORT RegionService {
   /**
    * @brief public methods
    */

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/ResultCollector.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/ResultCollector.hpp b/src/cppcache/include/geode/ResultCollector.hpp
index 28b221c..64c5f22 100644
--- a/src/cppcache/include/geode/ResultCollector.hpp
+++ b/src/cppcache/include/geode/ResultCollector.hpp
@@ -22,7 +22,7 @@
 
 #include "geode_globals.hpp"
 #include "geode_types.hpp"
-#include "SharedPtr.hpp"
+#include <memory>
 #include "VectorT.hpp"
 #include "CacheableBuiltins.hpp"
 
@@ -60,10 +60,10 @@ namespace client {
  * @see FunctionService
  */
 
-class CPPCACHE_EXPORT ResultCollector : public SharedBase {
+class CPPCACHE_EXPORT ResultCollector {
   /**
-    * @brief public methods
-    */
+   * @brief public methods
+   */
  public:
   ResultCollector();
   virtual ~ResultCollector();
@@ -100,7 +100,7 @@ class CPPCACHE_EXPORT ResultCollector : public SharedBase {
    * Function Execution HA) This is to clear the previous execution results from
    * the result collector
    * @since 6.5
-  */
+   */
   virtual void clearResults();
 
  private:

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/SelectResults.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/SelectResults.hpp b/src/cppcache/include/geode/SelectResults.hpp
index 4164a6d..82405f2 100644
--- a/src/cppcache/include/geode/SelectResults.hpp
+++ b/src/cppcache/include/geode/SelectResults.hpp
@@ -41,7 +41,7 @@ class SelectResultsIterator;
  * A SelectResults is obtained by executing a Query on the server.
  * This can either be a ResultSet or a StructSet.
  */
-class CPPCACHE_EXPORT SelectResults : public SharedBase {
+class CPPCACHE_EXPORT SelectResults {
  public:
   /**
    * Check whether the SelectResults is modifiable.

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/SelectResultsIterator.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/SelectResultsIterator.hpp b/src/cppcache/include/geode/SelectResultsIterator.hpp
index 1a61c96..4a1b270 100644
--- a/src/cppcache/include/geode/SelectResultsIterator.hpp
+++ b/src/cppcache/include/geode/SelectResultsIterator.hpp
@@ -44,7 +44,7 @@ class StructSetImpl;
  * A SelectResultsIterator is obtained from a ResultSet or StructSet and
  * is used to iterate over the items available in them.
  */
-class CPPCACHE_EXPORT SelectResultsIterator : public SharedBase {
+class CPPCACHE_EXPORT SelectResultsIterator {
  public:
   /**
    * Check whether the SelectResultsIterator has another item to get.

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/Serializable.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/Serializable.hpp b/src/cppcache/include/geode/Serializable.hpp
index 022b0bf..06d571a 100644
--- a/src/cppcache/include/geode/Serializable.hpp
+++ b/src/cppcache/include/geode/Serializable.hpp
@@ -133,10 +133,6 @@ class CPPCACHE_EXPORT Serializable
    * Display this object as 'string', which depends on the implementation in
    * the subclasses.
    * The default implementation renders the classname.
-   *
-   * The return value may be a temporary, so the caller has to ensure that
-   * the SharedPtr count does not go down to zero by storing the result
-   * in a variable or otherwise.
    */
   virtual CacheableStringPtr toString() const;
 

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/Serializer.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/Serializer.hpp b/src/cppcache/include/geode/Serializer.hpp
index 0efa1b1..0a5279e 100644
--- a/src/cppcache/include/geode/Serializer.hpp
+++ b/src/cppcache/include/geode/Serializer.hpp
@@ -1,8 +1,3 @@
-#pragma once
-
-#ifndef GEODE_SERIALIZER_H_
-#define GEODE_SERIALIZER_H_
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -20,10 +15,16 @@
  * limitations under the License.
  */
 
+#pragma once
+
+#ifndef GEODE_SERIALIZER_H_
+#define GEODE_SERIALIZER_H_
+
 #include <vector>
 #include <unordered_map>
-#include <unordered_map>
+#include <unordered_set>
 #include <memory>
+#include <type_traits>
 
 #include "geode_globals.hpp"
 #include "DataOutput.hpp"
@@ -32,7 +33,6 @@
 #include "HashMapT.hpp"
 #include "HashSetT.hpp"
 #include "GeodeTypeIds.hpp"
-#include "TypeHelper.hpp"
 
 namespace apache {
 namespace geode {
@@ -223,34 +223,20 @@ inline void readObject(apache::geode::client::DataInput& input,
   input.readUTF(&value);
 }
 
-// Base Serializable types
-
-template <typename TObj>
-inline void writeObject(
-    apache::geode::client::DataOutput& output,
-    const apache::geode::client::SharedPtr<TObj>& value,
-    apache::geode::client::TypeHelper::yes_type isSerializable) {
-  output.writeObject(value);
-}
-
-template <typename TObj>
+template <typename TObj,
+          typename std::enable_if<std::is_base_of<Serializable, TObj>::value,
+                                  Serializable>::type* = nullptr>
 inline void writeObject(apache::geode::client::DataOutput& output,
-                        const apache::geode::client::SharedPtr<TObj>& value) {
-  writeObject(output, value, GF_TYPE_IS_SERIALIZABLE_TYPE(TObj));
-}
-
-template <typename TObj>
-inline void readObject(
-    apache::geode::client::DataInput& input,
-    apache::geode::client::SharedPtr<TObj>& value,
-    apache::geode::client::TypeHelper::yes_type isSerializable) {
-  input.readObject(value, true);
+                        const std::shared_ptr<TObj>& value) {
+  output.writeObject(value);
 }
 
-template <typename TObj>
+template <typename TObj,
+          typename std::enable_if<std::is_base_of<Serializable, TObj>::value,
+                                  Serializable>::type* = nullptr>
 inline void readObject(apache::geode::client::DataInput& input,
-                       apache::geode::client::SharedPtr<TObj>& value) {
-  readObject(input, value, GF_TYPE_IS_SERIALIZABLE_TYPE(TObj));
+                       std::shared_ptr<TObj>& value) {
+  input.readObject(value, true);
 }
 
 // For arrays
@@ -285,10 +271,17 @@ inline void readObject(apache::geode::client::DataInput& input, TObj*& array,
   }
 }
 
-template <typename TObj, typename TLen>
-inline uint32_t objectSize(
-    const TObj* array, TLen len,
-    apache::geode::client::TypeHelper::yes_type isSerializable) {
+template <typename TObj, typename TLen,
+          typename std::enable_if<!std::is_base_of<Serializable, TObj>::value,
+                                  Serializable>::type* = nullptr>
+inline uint32_t objectSize(const TObj* array, TLen len) {
+  return (uint32_t)(sizeof(TObj) * len);
+}
+
+template <typename TObj, typename TLen,
+          typename std::enable_if<std::is_base_of<Serializable, TObj>::value,
+                                  Serializable>::type* = nullptr>
+inline uint32_t objectSize(const TObj* array, TLen len) {
   uint32_t size = 0;
   const TObj* endArray = array + len;
   while (array < endArray) {
@@ -301,18 +294,6 @@ inline uint32_t objectSize(
   return size;
 }
 
-template <typename TObj, typename TLen>
-inline uint32_t objectSize(
-    const TObj* array, TLen len,
-    apache::geode::client::TypeHelper::no_type isNotSerializable) {
-  return (uint32_t)(sizeof(TObj) * len);
-}
-
-template <typename TObj, typename TLen>
-inline uint32_t objectSize(const TObj* array, TLen len) {
-  return objectSize(array, len, GF_TYPE_IS_SERIALIZABLE_TYPE(TObj));
-}
-
 // For containers vector/hashmap/hashset
 
 template <typename TObj, typename Allocator>

http://git-wip-us.apache.org/repos/asf/geode-native/blob/b1a9af53/src/cppcache/include/geode/SharedBase.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/include/geode/SharedBase.hpp b/src/cppcache/include/geode/SharedBase.hpp
deleted file mode 100644
index 642ed0a..0000000
--- a/src/cppcache/include/geode/SharedBase.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-#pragma once
-
-#ifndef GEODE_SHAREDBASE_H_
-#define GEODE_SHAREDBASE_H_
-
-/*
- * 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.
- */
-
-#include "geode_globals.hpp"
-
-/** @file
-*/
-
-namespace apache {
-namespace geode {
-namespace client {
-
-/**
- * @class SharedBase SharedBase.hpp
- *
- * This abstract base class is the base class of all user objects.
- */
-class CPPCACHE_EXPORT SharedBase {
- public:
-  /** Constructor. */
-  inline SharedBase() {}
-
-  void operator=(const SharedBase& rhs) = delete;
-
- protected:
-  inline SharedBase(bool noInit) {}
-
-  virtual ~SharedBase() {}
-};
-
-}  // namespace client
-}  // namespace geode
-}  // namespace apache
-
-#endif  // GEODE_SHAREDBASE_H_


Mime
View raw message