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 <[email protected]> Authored: Sat Jun 10 07:40:41 2017 +0000 Committer: Jacob Barrett <[email protected]> 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> -*     private String tradeID;<br> -*     private Month month ;<br> -*     private Year year ;<br> -* -*     public TradingKey(){ } <br> -*     public TradingKey(Month month, Year year){<br> -*         this.month = month;<br> -*         this.year = year;<br> -*     } <br> -*     public Serializable getRoutingObject(EntryOperation -* opDetails){<br> -*         return this.month + this.year;<br> -*     }<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> + *     private String tradeID;<br> + *     private Month month ;<br> + *     private Year year ;<br> + * + *     public TradingKey(){ } <br> + *     public TradingKey(Month month, Year year){<br> + *         this.month = month;<br> + *         this.year = year;<br> + *     } <br> + *     public Serializable getRoutingObject(EntryOperation + * opDetails){<br> + *         return this.month + this.year;<br> + *     }<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_
