You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by jb...@apache.org on 2018/01/23 14:33:44 UTC
[geode-native] branch develop updated: GEODE-4314: Removes
std::enable_shared_from_this. (#190)
This is an automated email from the ASF dual-hosted git repository.
jbarrett pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-native.git
The following commit(s) were added to refs/heads/develop by this push:
new 86f6724 GEODE-4314: Removes std::enable_shared_from_this. (#190)
86f6724 is described below
commit 86f67240bdbb6967a8cfc6d30fa401194856294c
Author: Jacob Barrett <jb...@pivotal.io>
AuthorDate: Tue Jan 23 06:33:42 2018 -0800
GEODE-4314: Removes std::enable_shared_from_this. (#190)
- Adds std::enable_shared_from_this to PdxSerializable to satisfy some
strange serialization behavior. See GEODE-4359
---
cppcache/include/geode/PdxSerializable.hpp | 4 +++-
cppcache/include/geode/Serializable.hpp | 3 +--
cppcache/integration-test/DeltaEx.hpp | 11 -----------
cppcache/src/PdxHelper.cpp | 12 ++----------
cppcache/src/PdxHelper.hpp | 17 ++++++-----------
cppcache/src/PdxType.hpp | 15 +++++++--------
tests/cpp/testobject/DeltaPSTObject.hpp | 4 ----
7 files changed, 19 insertions(+), 47 deletions(-)
diff --git a/cppcache/include/geode/PdxSerializable.hpp b/cppcache/include/geode/PdxSerializable.hpp
index 3741acb..ab90708 100644
--- a/cppcache/include/geode/PdxSerializable.hpp
+++ b/cppcache/include/geode/PdxSerializable.hpp
@@ -36,7 +36,9 @@ class PdxWriter;
class DataInput;
class DataOutput;
-class _GEODE_EXPORT PdxSerializable : public CacheableKey {
+class _GEODE_EXPORT PdxSerializable
+ : public CacheableKey,
+ public std::enable_shared_from_this<PdxSerializable> {
public:
PdxSerializable();
virtual ~PdxSerializable();
diff --git a/cppcache/include/geode/Serializable.hpp b/cppcache/include/geode/Serializable.hpp
index 6443b3f..e2edd97 100644
--- a/cppcache/include/geode/Serializable.hpp
+++ b/cppcache/include/geode/Serializable.hpp
@@ -56,8 +56,7 @@ typedef PdxSerializable* (*TypeFactoryMethodPdx)();
* This abstract base class is the superclass of all user objects
* in the cache that can be serialized.
*/
-class _GEODE_EXPORT Serializable
- : public std::enable_shared_from_this<Serializable> {
+class _GEODE_EXPORT Serializable {
public:
/**
*@brief serialize this object
diff --git a/cppcache/integration-test/DeltaEx.hpp b/cppcache/integration-test/DeltaEx.hpp
index 2ba1a18..55fbdea 100644
--- a/cppcache/integration-test/DeltaEx.hpp
+++ b/cppcache/integration-test/DeltaEx.hpp
@@ -31,11 +31,6 @@
#include "CacheHelper.hpp"
class DeltaEx : public Cacheable, public Delta {
- private:
- std::shared_ptr<DeltaEx> shared_from_this() {
- return std::static_pointer_cast<DeltaEx>(Serializable::shared_from_this());
- }
-
public:
int counter;
bool isDelta;
@@ -87,12 +82,6 @@ class DeltaEx : public Cacheable, public Delta {
};
class PdxDeltaEx : public PdxSerializable, public Delta {
- private:
- std::shared_ptr<PdxDeltaEx> shared_from_this() {
- return std::static_pointer_cast<PdxDeltaEx>(
- Serializable::shared_from_this());
- }
-
public:
int m_counter;
bool m_isDelta;
diff --git a/cppcache/src/PdxHelper.cpp b/cppcache/src/PdxHelper.cpp
index a73f214..e2172a0 100644
--- a/cppcache/src/PdxHelper.cpp
+++ b/cppcache/src/PdxHelper.cpp
@@ -14,12 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/*
- * PdxHelper.cpp
- *
- * Created on: Dec 13, 2011
- * Author: npatel
- */
#include <geode/Cache.hpp>
#include <geode/DataInput.hpp>
@@ -53,10 +47,8 @@ PdxHelper::~PdxHelper() {}
void PdxHelper::serializePdx(DataOutput& output,
const PdxSerializable& pdxObject) {
- serializePdx(
- output,
- std::static_pointer_cast<PdxSerializable>(
- std::const_pointer_cast<Serializable>(pdxObject.shared_from_this())));
+ serializePdx(output, std::const_pointer_cast<PdxSerializable>(
+ pdxObject.shared_from_this()));
}
void PdxHelper::serializePdx(
diff --git a/cppcache/src/PdxHelper.hpp b/cppcache/src/PdxHelper.hpp
index 4d9b049..058e6d0 100644
--- a/cppcache/src/PdxHelper.hpp
+++ b/cppcache/src/PdxHelper.hpp
@@ -1,8 +1,3 @@
-#pragma once
-
-#ifndef GEODE_PDXHELPER_H_
-#define GEODE_PDXHELPER_H_
-
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -19,14 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/*
- * PdxHelper.hpp
- *
- * Created on: Dec 13, 2011
- * Author: npatel
- */
+
+#pragma once
+
+#ifndef GEODE_PDXHELPER_H_
+#define GEODE_PDXHELPER_H_
#include <geode/DataOutput.hpp>
+
#include "EnumInfo.hpp"
#include "PdxType.hpp"
#include "CacheImpl.hpp"
diff --git a/cppcache/src/PdxType.hpp b/cppcache/src/PdxType.hpp
index d6487eb..097cc83 100644
--- a/cppcache/src/PdxType.hpp
+++ b/cppcache/src/PdxType.hpp
@@ -20,17 +20,19 @@
#ifndef GEODE_PDXTYPE_H_
#define GEODE_PDXTYPE_H_
-#include <geode/Serializable.hpp>
-#include "PdxFieldType.hpp"
-#include <geode/CacheableBuiltins.hpp>
#include <map>
#include <vector>
#include <list>
#include <string>
+
#include <ace/ACE.h>
#include <ace/Recursive_Thread_Mutex.h>
-#include "ReadWriteLock.hpp"
+#include <geode/Serializable.hpp>
+#include <geode/CacheableBuiltins.hpp>
+
+#include "PdxFieldType.hpp"
+#include "ReadWriteLock.hpp"
#include "NonCopyable.hpp"
namespace apache {
@@ -42,6 +44,7 @@ class PdxType;
class PdxTypeRegistry;
class PdxType : public Serializable,
+ public std::enable_shared_from_this<PdxType>,
private NonCopyable,
private NonAssignable {
private:
@@ -96,10 +99,6 @@ class PdxType : public Serializable,
std::shared_ptr<PdxType> isRemoteTypeContains(
std::shared_ptr<PdxType> localType);
- std::shared_ptr<PdxType> shared_from_this() {
- return std::static_pointer_cast<PdxType>(Serializable::shared_from_this());
- }
-
public:
PdxType(std::shared_ptr<PdxTypeRegistry> pdxTypeRegistryPtr,
std::string pdxDomainClassName, bool isLocal);
diff --git a/tests/cpp/testobject/DeltaPSTObject.hpp b/tests/cpp/testobject/DeltaPSTObject.hpp
index 49f5cac..0511ee2 100644
--- a/tests/cpp/testobject/DeltaPSTObject.hpp
+++ b/tests/cpp/testobject/DeltaPSTObject.hpp
@@ -52,10 +52,6 @@ class TESTOBJECT_EXPORT DeltaPSTObject : public Cacheable, public Delta {
int32_t field1;
int8_t field2;
std::shared_ptr<CacheableBytes> valueData;
- std::shared_ptr<DeltaPSTObject> shared_from_this() {
- return std::static_pointer_cast<DeltaPSTObject>(
- Serializable::shared_from_this());
- }
public:
DeltaPSTObject() : Delta(nullptr), timestamp(0), valueData(nullptr) {}
--
To stop receiving notification emails like this one, please contact
jbarrett@apache.org.