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 2017/09/21 05:20:09 UTC
[geode-native] branch develop updated: Revert "GEODE-3630: Change
to void Serializable::fromData(...)"
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 b0545b7 Revert "GEODE-3630: Change to void Serializable::fromData(...)"
b0545b7 is described below
commit b0545b7d9739fea764db862b6d923b0af21c7c9a
Author: Jacob Barrett <jb...@pivotal.io>
AuthorDate: Thu Sep 21 02:39:56 2017 +0000
Revert "GEODE-3630: Change to void Serializable::fromData(...)"
This reverts commit ed74ca26ee43765663bd26ea60f0a7093429fee3.
---
clicache/src/Properties.cpp | 7 +-
clicache/src/RegionAttributes.cpp | 6 +-
clicache/src/Serializable.cpp | 7 +-
clicache/src/impl/ManagedCacheableDelta.cpp | 3 +-
clicache/src/impl/ManagedCacheableDelta.hpp | 2 +-
clicache/src/impl/ManagedCacheableDeltaBytes.cpp | 3 +-
clicache/src/impl/ManagedCacheableDeltaBytes.hpp | 2 +-
clicache/src/impl/ManagedCacheableKey.cpp | 8 +-
clicache/src/impl/ManagedCacheableKey.hpp | 2 +-
clicache/src/impl/ManagedCacheableKeyBytes.cpp | 3 +-
clicache/src/impl/ManagedCacheableKeyBytes.hpp | 2 +-
clicache/src/impl/PdxManagedCacheableKey.cpp | 3 +-
clicache/src/impl/PdxManagedCacheableKey.hpp | 2 +-
clicache/src/impl/PdxManagedCacheableKeyBytes.cpp | 3 +-
clicache/src/impl/PdxManagedCacheableKeyBytes.hpp | 2 +-
cppcache/include/geode/CacheableBuiltins.hpp | 102 +--
cppcache/include/geode/CacheableDate.hpp | 14 +-
cppcache/include/geode/CacheableEnum.hpp | 88 ++-
cppcache/include/geode/CacheableFileName.hpp | 14 +-
cppcache/include/geode/CacheableObjectArray.hpp | 14 +-
cppcache/include/geode/CacheableString.hpp | 13 +-
cppcache/include/geode/CacheableUndefined.hpp | 13 +-
cppcache/include/geode/PdxInstance.hpp | 814 +++++++++++----------
cppcache/include/geode/PdxSerializable.hpp | 13 +-
cppcache/include/geode/PdxWrapper.hpp | 2 +-
cppcache/include/geode/Properties.hpp | 13 +-
cppcache/include/geode/RegionAttributes.hpp | 18 +-
cppcache/include/geode/Serializable.hpp | 28 +-
cppcache/include/geode/Struct.hpp | 5 +-
.../geode/UserFunctionExecutionException.hpp | 14 +-
cppcache/integration-test/DeltaEx.hpp | 13 +-
cppcache/integration-test/testSerialization.cpp | 3 +-
cppcache/src/BucketServerLocation.hpp | 17 +-
cppcache/src/CacheFactory.cpp | 16 +-
cppcache/src/CacheableDate.cpp | 5 +-
cppcache/src/CacheableEnum.cpp | 5 +-
cppcache/src/CacheableFileName.cpp | 5 +-
cppcache/src/CacheableObjectArray.cpp | 3 +-
cppcache/src/CacheableObjectPartList.cpp | 3 +-
cppcache/src/CacheableObjectPartList.hpp | 14 +-
cppcache/src/CacheableString.cpp | 3 +-
cppcache/src/CacheableToken.cpp | 3 +-
cppcache/src/CacheableToken.hpp | 13 +-
cppcache/src/CacheableUndefined.cpp | 2 +-
cppcache/src/CachedDeserializableHelper.hpp | 106 +++
cppcache/src/ClientConnectionRequest.cpp | 16 +-
cppcache/src/ClientConnectionRequest.hpp | 33 +-
cppcache/src/ClientConnectionResponse.cpp | 8 +-
cppcache/src/ClientConnectionResponse.hpp | 24 +-
cppcache/src/ClientHealthStats.cpp | 3 +-
cppcache/src/ClientHealthStats.hpp | 13 +-
cppcache/src/ClientProxyMembershipID.cpp | 4 +-
cppcache/src/ClientProxyMembershipID.hpp | 14 +-
cppcache/src/ClientReplacementRequest.cpp | 9 +-
cppcache/src/ClientReplacementRequest.hpp | 15 +-
cppcache/src/DiskStoreId.hpp | 18 +-
cppcache/src/EnumInfo.cpp | 3 +-
cppcache/src/EnumInfo.hpp | 13 +-
cppcache/src/EventId.cpp | 3 +-
cppcache/src/EventId.hpp | 15 +-
cppcache/src/FixedPartitionAttributesImpl.hpp | 15 +-
...equest.hpp => GatewayEventCallbackArgument.hpp} | 62 +-
.../src/GatewaySenderEventCallbackArgument.hpp | 76 ++
cppcache/src/GetAllServersRequest.cpp | 3 +-
cppcache/src/GetAllServersRequest.hpp | 14 +-
cppcache/src/GetAllServersResponse.cpp | 3 +-
cppcache/src/GetAllServersResponse.hpp | 14 +-
cppcache/src/LocatorListRequest.cpp | 8 +-
cppcache/src/LocatorListRequest.hpp | 16 +-
cppcache/src/LocatorListResponse.cpp | 11 +-
cppcache/src/LocatorListResponse.hpp | 16 +-
...heableUndefined.cpp => PdxEnumInstantiator.cpp} | 34 +-
...atorListRequest.hpp => PdxEnumInstantiator.hpp} | 45 +-
cppcache/src/PdxFieldType.cpp | 3 +-
cppcache/src/PdxFieldType.hpp | 15 +-
cppcache/src/PdxInstanceImpl.hpp | 2 +-
.../{PdxSerializable.cpp => PdxInstantiator.cpp} | 44 +-
...{LocatorListRequest.hpp => PdxInstantiator.hpp} | 42 +-
cppcache/src/PdxSerializable.cpp | 2 +-
cppcache/src/PdxType.cpp | 12 +-
cppcache/src/PdxType.hpp | 13 +-
cppcache/src/PdxWrapper.cpp | 2 +-
cppcache/src/Properties.cpp | 7 +-
cppcache/src/PutAllPartialResult.hpp | 15 +-
.../src/PutAllPartialResultServerException.cpp | 5 +-
.../src/PutAllPartialResultServerException.hpp | 13 +-
cppcache/src/QueueConnectionRequest.cpp | 15 +-
cppcache/src/QueueConnectionRequest.hpp | 16 +-
cppcache/src/QueueConnectionResponse.cpp | 6 +-
cppcache/src/QueueConnectionResponse.hpp | 21 +-
cppcache/src/RegionAttributes.cpp | 4 +-
cppcache/src/SerializationRegistry.cpp | 118 ++-
cppcache/src/ServerLocation.hpp | 21 +-
cppcache/src/ServerLocationRequest.hpp | 15 +-
cppcache/src/ServerLocationResponse.hpp | 16 +-
cppcache/src/Struct.cpp | 3 +-
cppcache/src/TXCommitMessage.cpp | 18 +-
cppcache/src/TXCommitMessage.hpp | 21 +-
cppcache/src/UserFunctionExecutionException.cpp | 3 +-
cppcache/src/VersionTag.cpp | 3 +-
cppcache/src/VersionTag.hpp | 15 +-
cppcache/src/VersionedCacheableObjectPartList.cpp | 4 +-
cppcache/src/VersionedCacheableObjectPartList.hpp | 25 +-
quickstart/cpp/queryobjects/Position.hpp | 5 +-
tests/cpp/testobject/BatchObject.cpp | 6 +-
tests/cpp/testobject/BatchObject.hpp | 13 +-
tests/cpp/testobject/DeltaFastAssetAccount.cpp | 6 +-
tests/cpp/testobject/DeltaFastAssetAccount.hpp | 13 +-
tests/cpp/testobject/DeltaPSTObject.cpp | 9 +-
tests/cpp/testobject/DeltaPSTObject.hpp | 13 +-
tests/cpp/testobject/DeltaTestImpl.cpp | 3 +-
tests/cpp/testobject/DeltaTestImpl.hpp | 21 +-
tests/cpp/testobject/EqStruct.cpp | 6 +-
tests/cpp/testobject/EqStruct.hpp | 13 +-
tests/cpp/testobject/FastAsset.cpp | 5 +-
tests/cpp/testobject/FastAsset.hpp | 13 +-
tests/cpp/testobject/FastAssetAccount.cpp | 9 +-
tests/cpp/testobject/FastAssetAccount.hpp | 13 +-
tests/cpp/testobject/PSTObject.cpp | 7 +-
tests/cpp/testobject/PSTObject.hpp | 13 +-
tests/cpp/testobject/Portfolio.cpp | 3 +-
tests/cpp/testobject/Portfolio.hpp | 12 +-
tests/cpp/testobject/Position.cpp | 4 +-
tests/cpp/testobject/Position.hpp | 13 +-
tests/cpp/testobject/TestObject1.cpp | 3 +-
tests/cpp/testobject/TestObject1.hpp | 18 +-
tests/cpp/testobject/TimestampedObject.hpp | 14 +-
tests/cpp/testobject/VariousPdxTypes.cpp | 5 +-
tests/cpp/testobject/VariousPdxTypes.hpp | 18 +-
129 files changed, 1458 insertions(+), 1238 deletions(-)
diff --git a/clicache/src/Properties.cpp b/clicache/src/Properties.cpp
index b4f00d1..af41931 100644
--- a/clicache/src/Properties.cpp
+++ b/clicache/src/Properties.cpp
@@ -263,9 +263,12 @@ namespace Apache
{
_GF_MG_EXCEPTION_TRY2
- try
+ try
{
- m_nativeptr->get()->fromData(input);
+ auto p = static_cast<native::Properties*>(m_nativeptr->get()->fromData(input));
+ if (m_nativeptr->get() != p) {
+ m_nativeptr->get_shared_ptr().reset(p);
+ }
}
finally
{
diff --git a/clicache/src/RegionAttributes.cpp b/clicache/src/RegionAttributes.cpp
index a4ab1ec..7bc639a 100644
--- a/clicache/src/RegionAttributes.cpp
+++ b/clicache/src/RegionAttributes.cpp
@@ -71,7 +71,11 @@ namespace Apache
{
try
{
- m_nativeptr->get()->fromData(*nativeInput);
+ auto temp = static_cast<native::RegionAttributes*>(m_nativeptr->get()->fromData(*nativeInput));
+ if (temp != m_nativeptr->get())
+ {
+ m_nativeptr->get_shared_ptr().reset(temp);
+ }
}
finally
{
diff --git a/clicache/src/Serializable.cpp b/clicache/src/Serializable.cpp
index 2a3b4e7..8760bab 100644
--- a/clicache/src/Serializable.cpp
+++ b/clicache/src/Serializable.cpp
@@ -99,7 +99,12 @@ namespace Apache
try
{
- m_nativeptr->get()->fromData(*nativeInput);
+ auto temp = m_nativeptr->get()->fromData(*nativeInput);
+ if (temp != m_nativeptr->get())
+ {
+ m_nativeptr->get_shared_ptr().reset(temp);
+ }
+
if (input->IsManagedObject()) {
input->SetBuffer();
}
diff --git a/clicache/src/impl/ManagedCacheableDelta.cpp b/clicache/src/impl/ManagedCacheableDelta.cpp
index 33ba766..8c0c0d1 100644
--- a/clicache/src/impl/ManagedCacheableDelta.cpp
+++ b/clicache/src/impl/ManagedCacheableDelta.cpp
@@ -55,7 +55,7 @@ namespace apache
}
}
- void ManagedCacheableDeltaGeneric::fromData(DataInput& input)
+ Serializable* ManagedCacheableDeltaGeneric::fromData(DataInput& input)
{
try {
int pos = input.getBytesRead();
@@ -77,6 +77,7 @@ namespace apache
catch (System::Exception^ ex) {
Apache::Geode::Client::GeodeException::ThrowNative(ex);
}
+ return this;
}
System::UInt32 ManagedCacheableDeltaGeneric::objectSize() const
diff --git a/clicache/src/impl/ManagedCacheableDelta.hpp b/clicache/src/impl/ManagedCacheableDelta.hpp
index efeb2c9..9211a8d 100644
--- a/clicache/src/impl/ManagedCacheableDelta.hpp
+++ b/clicache/src/impl/ManagedCacheableDelta.hpp
@@ -97,7 +97,7 @@ namespace apache
/// deserialize this object, typical implementation should return
/// the 'this' pointer.
/// </summary>
- virtual void fromData(apache::geode::client::DataInput& input);
+ virtual apache::geode::client::Serializable* fromData(apache::geode::client::DataInput& input);
virtual void toDelta(apache::geode::client::DataOutput& output) const;
diff --git a/clicache/src/impl/ManagedCacheableDeltaBytes.cpp b/clicache/src/impl/ManagedCacheableDeltaBytes.cpp
index 510d4f9..18472c4 100644
--- a/clicache/src/impl/ManagedCacheableDeltaBytes.cpp
+++ b/clicache/src/impl/ManagedCacheableDeltaBytes.cpp
@@ -50,7 +50,7 @@ namespace apache
}
}
- void ManagedCacheableDeltaBytesGeneric::fromData(DataInput& input)
+ Serializable* ManagedCacheableDeltaBytesGeneric::fromData(DataInput& input)
{
try {
Apache::Geode::Client::Log::Debug("ManagedCacheableDeltaBytes::fromData: classid " + m_classId);
@@ -77,6 +77,7 @@ namespace apache
catch (System::Exception^ ex) {
Apache::Geode::Client::GeodeException::ThrowNative(ex);
}
+ return this;
}
System::UInt32 ManagedCacheableDeltaBytesGeneric::objectSize() const
diff --git a/clicache/src/impl/ManagedCacheableDeltaBytes.hpp b/clicache/src/impl/ManagedCacheableDeltaBytes.hpp
index b45c737..c5fcbb2 100644
--- a/clicache/src/impl/ManagedCacheableDeltaBytes.hpp
+++ b/clicache/src/impl/ManagedCacheableDeltaBytes.hpp
@@ -113,7 +113,7 @@ namespace apache
/// deserialize this object, typical implementation should return
/// the 'this' pointer.
/// </summary>
- virtual void fromData(apache::geode::client::DataInput& input);
+ virtual apache::geode::client::Serializable* fromData(apache::geode::client::DataInput& input);
virtual void toDelta(apache::geode::client::DataOutput& output) const;
diff --git a/clicache/src/impl/ManagedCacheableKey.cpp b/clicache/src/impl/ManagedCacheableKey.cpp
index 0ee0141..8cefef9 100644
--- a/clicache/src/impl/ManagedCacheableKey.cpp
+++ b/clicache/src/impl/ManagedCacheableKey.cpp
@@ -57,16 +57,21 @@ namespace apache
}
}
- void ManagedCacheableKeyGeneric::fromData(apache::geode::client::DataInput& input)
+ apache::geode::client::Serializable* ManagedCacheableKeyGeneric::fromData(apache::geode::client::DataInput& input)
{
try {
int pos = input.getBytesRead();
+ //Apache::Geode::Client::Log::Debug("ManagedCacheableKeyGeneric::fromData");
Apache::Geode::Client::DataInput mg_input(&input, true, input.getCache());
m_managedptr = m_managedptr->FromData(%mg_input);
//this will move the cursor in c++ layer
input.advanceCursor(mg_input.BytesReadInternally);
m_objectSize = input.getBytesRead() - pos;
+ //if(m_hashcode == 0)
+ //m_hashcode = m_managedptr->GetHashCode();
+
+
}
catch (Apache::Geode::Client::GeodeException^ ex) {
ex->ThrowNative();
@@ -74,6 +79,7 @@ namespace apache
catch (System::Exception^ ex) {
Apache::Geode::Client::GeodeException::ThrowNative(ex);
}
+ return this;
}
System::UInt32 ManagedCacheableKeyGeneric::objectSize() const
diff --git a/clicache/src/impl/ManagedCacheableKey.hpp b/clicache/src/impl/ManagedCacheableKey.hpp
index bc40f09..1f3c27f 100644
--- a/clicache/src/impl/ManagedCacheableKey.hpp
+++ b/clicache/src/impl/ManagedCacheableKey.hpp
@@ -83,7 +83,7 @@ namespace apache
/// deserialize this object, typical implementation should return
/// the 'this' pointer.
/// </summary>
- virtual void fromData(apache::geode::client::DataInput& input);
+ virtual apache::geode::client::Serializable* fromData(apache::geode::client::DataInput& input);
/// <summary>
diff --git a/clicache/src/impl/ManagedCacheableKeyBytes.cpp b/clicache/src/impl/ManagedCacheableKeyBytes.cpp
index 364b103..93e01bc 100644
--- a/clicache/src/impl/ManagedCacheableKeyBytes.cpp
+++ b/clicache/src/impl/ManagedCacheableKeyBytes.cpp
@@ -53,7 +53,7 @@ namespace apache
}
}
- void ManagedCacheableKeyBytesGeneric::fromData(apache::geode::client::DataInput& input)
+ apache::geode::client::Serializable* ManagedCacheableKeyBytesGeneric::fromData(apache::geode::client::DataInput& input)
{
try {
@@ -82,6 +82,7 @@ namespace apache
catch (System::Exception^ ex) {
Apache::Geode::Client::GeodeException::ThrowNative(ex);
}
+ return this;
}
System::UInt32 ManagedCacheableKeyBytesGeneric::objectSize() const
diff --git a/clicache/src/impl/ManagedCacheableKeyBytes.hpp b/clicache/src/impl/ManagedCacheableKeyBytes.hpp
index 2e47899..10f0466 100644
--- a/clicache/src/impl/ManagedCacheableKeyBytes.hpp
+++ b/clicache/src/impl/ManagedCacheableKeyBytes.hpp
@@ -104,7 +104,7 @@ namespace apache
/// deserialize this object, typical implementation should return
/// the 'this' pointer.
/// </summary>
- virtual void fromData(apache::geode::client::DataInput& input);
+ virtual apache::geode::client::Serializable* fromData(apache::geode::client::DataInput& input);
/// <summary>
diff --git a/clicache/src/impl/PdxManagedCacheableKey.cpp b/clicache/src/impl/PdxManagedCacheableKey.cpp
index c3d2a3b..2764b36 100644
--- a/clicache/src/impl/PdxManagedCacheableKey.cpp
+++ b/clicache/src/impl/PdxManagedCacheableKey.cpp
@@ -59,7 +59,7 @@ namespace apache
}
}
- void PdxManagedCacheableKey::fromData(apache::geode::client::DataInput& input)
+ Serializable* PdxManagedCacheableKey::fromData(apache::geode::client::DataInput& input)
{
try {
int pos = input.getBytesRead();
@@ -80,6 +80,7 @@ namespace apache
catch (System::Exception^ ex) {
Apache::Geode::Client::GeodeException::ThrowNative(ex);
}
+ return this;
}
System::UInt32 PdxManagedCacheableKey::objectSize() const
diff --git a/clicache/src/impl/PdxManagedCacheableKey.hpp b/clicache/src/impl/PdxManagedCacheableKey.hpp
index b1c82c2..02bea8c 100644
--- a/clicache/src/impl/PdxManagedCacheableKey.hpp
+++ b/clicache/src/impl/PdxManagedCacheableKey.hpp
@@ -96,7 +96,7 @@ namespace apache
/// deserialize this object, typical implementation should return
/// the 'this' pointer.
/// </summary>
- virtual void fromData(apache::geode::client::DataInput& input);
+ virtual apache::geode::client::Serializable* fromData(apache::geode::client::DataInput& input);
virtual void toDelta(apache::geode::client::DataOutput& output) const;
diff --git a/clicache/src/impl/PdxManagedCacheableKeyBytes.cpp b/clicache/src/impl/PdxManagedCacheableKeyBytes.cpp
index aa58ff6..f811449 100644
--- a/clicache/src/impl/PdxManagedCacheableKeyBytes.cpp
+++ b/clicache/src/impl/PdxManagedCacheableKeyBytes.cpp
@@ -51,7 +51,7 @@ namespace apache
}
}
- void PdxManagedCacheableKeyBytes::fromData(apache::geode::client::DataInput& input)
+ apache::geode::client::Serializable* PdxManagedCacheableKeyBytes::fromData(apache::geode::client::DataInput& input)
{
try {
@@ -75,6 +75,7 @@ namespace apache
catch (System::Exception^ ex) {
Apache::Geode::Client::GeodeException::ThrowNative(ex);
}
+ return this;
}
System::UInt32 PdxManagedCacheableKeyBytes::objectSize() const
diff --git a/clicache/src/impl/PdxManagedCacheableKeyBytes.hpp b/clicache/src/impl/PdxManagedCacheableKeyBytes.hpp
index 442f5ef..4480268 100644
--- a/clicache/src/impl/PdxManagedCacheableKeyBytes.hpp
+++ b/clicache/src/impl/PdxManagedCacheableKeyBytes.hpp
@@ -128,7 +128,7 @@ namespace apache
/// deserialize this object, typical implementation should return
/// the 'this' pointer.
/// </summary>
- virtual void fromData( apache::geode::client::DataInput& input );
+ virtual apache::geode::client::Serializable* fromData( apache::geode::client::DataInput& input );
virtual void toDelta( apache::geode::client::DataOutput& output) const;
diff --git a/cppcache/include/geode/CacheableBuiltins.hpp b/cppcache/include/geode/CacheableBuiltins.hpp
index 03b8e4a..af12149 100644
--- a/cppcache/include/geode/CacheableBuiltins.hpp
+++ b/cppcache/include/geode/CacheableBuiltins.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CACHEABLEBUILTINS_H_
+#define GEODE_CACHEABLEBUILTINS_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_CACHEABLEBUILTINS_H_
-#define GEODE_CACHEABLEBUILTINS_H_
-
/** @file CacheableBuiltins.hpp
* @brief Contains generic template definitions for Cacheable types
* and instantiations for built-in types.
@@ -70,8 +70,9 @@ class CacheableKeyType : public CacheableKey {
}
/** Deserialize this object from given <code>DataInput</code>. */
- virtual void fromData(DataInput& input) {
+ virtual Serializable* fromData(DataInput& input) {
apache::geode::client::serializer::readObject(input, m_value);
+ return this;
}
/**
@@ -237,9 +238,10 @@ class CacheableArrayType : public Cacheable {
}
/** Deserialize this object from the given <code>DataInput</code>. */
- virtual void fromData(DataInput& input) {
+ virtual Serializable* fromData(DataInput& input) {
GF_SAFE_DELETE_ARRAY(m_value);
apache::geode::client::serializer::readObject(input, m_value, m_length);
+ return this;
}
/**
@@ -290,8 +292,9 @@ class CacheableContainerType : public Cacheable, public TBase {
}
/** Deserialize this object from the given <code>DataInput</code>. */
- virtual void fromData(DataInput& input) {
+ virtual Serializable* fromData(DataInput& input) {
apache::geode::client::serializer::readObject(input, *this);
+ return this;
}
/**
@@ -377,47 +380,47 @@ class CacheableContainerType : public Cacheable, public TBase {
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) \
@@ -641,7 +644,6 @@ _GF_CACHEABLE_CONTAINER_TYPE_DEF_(HashSetOfCacheableKey,
* iteration semantics of java <code>LinkedHashSet</code>.
*/
_GF_CACHEABLE_CONTAINER_TYPE_(HashSetOfCacheableKey, CacheableLinkedHashSet);
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/include/geode/CacheableDate.hpp b/cppcache/include/geode/CacheableDate.hpp
index 99dce9c..3af1884 100644
--- a/cppcache/include/geode/CacheableDate.hpp
+++ b/cppcache/include/geode/CacheableDate.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CACHEABLEDATE_H_
+#define GEODE_CACHEABLEDATE_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_CACHEABLEDATE_H_
-#define GEODE_CACHEABLEDATE_H_
-
#include "geode_globals.hpp"
#include "geode_types.hpp"
#include "CacheableKey.hpp"
@@ -32,7 +32,7 @@
#include <ctime>
/** @file
- */
+*/
namespace apache {
namespace geode {
namespace client {
@@ -63,7 +63,7 @@ class CPPCACHE_EXPORT CacheableDate : public CacheableKey {
/**
* @brief deserialize this object
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/**
* @brief creation function for dates.
diff --git a/cppcache/include/geode/CacheableEnum.hpp b/cppcache/include/geode/CacheableEnum.hpp
index e9ee088..1967fe9 100644
--- a/cppcache/include/geode/CacheableEnum.hpp
+++ b/cppcache/include/geode/CacheableEnum.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CACHEABLEENUM_H_
+#define GEODE_CACHEABLEENUM_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_CACHEABLEENUM_H_
-#define GEODE_CACHEABLEENUM_H_
-
#include "CacheableKey.hpp"
#include "CacheableString.hpp"
@@ -28,18 +28,18 @@ namespace geode {
namespace client {
/**
- * Since C++ enums cannot be directly passed as a parameter to PdxWriter's
- * writeObject and PdxReader's readObject api
- * wrap C++ enum in to a immutable wrapper CacheableEnum class type by
- * specifying enum class name, enum value name and its ordinal. C++ enum allows
- * explicit setting of ordinal number, but it is up to the user to map java
- * enumName with that of C++ enumName. Currently this wrapper only works as part
- * of PdxSerializable member object and cannot be directly used in Region
- * operations.
- *
- * @see PdxWriter#writeObject
- * @see PdxReader#readObject
- */
+* Since C++ enums cannot be directly passed as a parameter to PdxWriter's
+* writeObject and PdxReader's readObject api
+* wrap C++ enum in to a immutable wrapper CacheableEnum class type by specifying
+* enum class name, enum value name and its ordinal.
+* C++ enum allows explicit setting of ordinal number, but it is up to the user
+* to map java enumName with that of C++ enumName.
+* Currently this wrapper only works as part of PdxSerializable member object and
+* cannot be directly used in Region operations.
+*
+* @see PdxWriter#writeObject
+* @see PdxReader#readObject
+*/
class CPPCACHE_EXPORT CacheableEnum : public CacheableKey {
private:
@@ -53,18 +53,18 @@ class CPPCACHE_EXPORT CacheableEnum : public CacheableKey {
~CacheableEnum();
/**
- * @brief creation function for enum.
- */
+ * @brief creation function for enum.
+ */
static Serializable* createDeserializable() { return new CacheableEnum(); }
/**
- * @brief serialize this object
- **/
+ * @brief serialize this object
+ **/
virtual void toData(DataOutput& output) const;
/**
- * @brief deserialize this object
- **/
- virtual void fromData(DataInput& input);
+ * @brief deserialize this object
+ **/
+ virtual Serializable* fromData(DataInput& input);
/** @return the size of the object in bytes */
virtual uint32_t objectSize() const {
@@ -76,39 +76,38 @@ class CPPCACHE_EXPORT CacheableEnum : public CacheableKey {
}
/**
- * @brief Return the classId of the instance being serialized.
- * This is used by deserialization to determine what instance
- * type to create and deserialize into.
- */
+ * @brief Return the classId of the instance being serialized.
+ * This is used by deserialization to determine what instance
+ * type to create and deserialize into.
+ */
virtual int32_t classId() const { return 0; }
/**
- * @brief return the typeId byte of the instance being serialized.
- * This is used by deserialization to determine what instance
- * type to create and deserialize into.
- */
+ * @brief return the typeId byte of the instance being serialized.
+ * This is used by deserialization to determine what instance
+ * type to create and deserialize into.
+ */
virtual int8_t typeId() const {
// return 0;
return static_cast<int8_t>(GeodeTypeIds::CacheableEnum);
}
/**
- * Display this object as c string.
- */
+ * Display this object as c string.
+ */
virtual CacheableStringPtr toString() const {
return CacheableString::create("CacheableEnum");
}
/**
- * Factory method for creating an instance of CacheableEnum.
- * @param className the name of the enum class that maps to the java enum
- * type.
- * @param enumName the name of the enum constant that maps to the java enum
- * type.
- * @param ordinal the ordinal value of the enum constant that maps to the java
- * enum type.
- * @return a {@link CacheableEnum} representing C++ enum.
- */
+ * Factory method for creating an instance of CacheableEnum.
+ * @param className the name of the enum class that maps to the java enum type.
+ * @param enumName the name of the enum constant that maps to the java enum
+ * type.
+ * @param ordinal the ordinal value of the enum constant that maps to the java
+ * enum type.
+ * @return a {@link CacheableEnum} representing C++ enum.
+ */
static CacheableEnumPtr create(const char* enumClassName,
const char* enumName, int32_t ordinal) {
return std::make_shared<CacheableEnum>(enumClassName, enumName, ordinal);
@@ -138,10 +137,9 @@ class CPPCACHE_EXPORT CacheableEnum : public CacheableKey {
// never implemented.
void operator=(const CacheableEnum& other);
CacheableEnum(const CacheableEnum& other);
-
+
FRIEND_STD_SHARED_PTR(CacheableEnum)
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/include/geode/CacheableFileName.hpp b/cppcache/include/geode/CacheableFileName.hpp
index bab3e52..5db13c1 100644
--- a/cppcache/include/geode/CacheableFileName.hpp
+++ b/cppcache/include/geode/CacheableFileName.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CACHEABLEFILENAME_H_
+#define GEODE_CACHEABLEFILENAME_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_CACHEABLEFILENAME_H_
-#define GEODE_CACHEABLEFILENAME_H_
-
#include "geode_globals.hpp"
#include "geode_types.hpp"
#include "CacheableKey.hpp"
@@ -31,7 +31,6 @@
namespace apache {
namespace geode {
namespace client {
-
/**
* Implement an immutable wrapper for filenames that can serve as a
* distributable filename object for caching as both key and value.
@@ -48,7 +47,7 @@ class CPPCACHE_EXPORT CacheableFileName : public CacheableString {
* Throw IllegalArgumentException if the packed CacheableString is not less
* than 64K bytes.
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/**
*@brief Return the classId of the instance being serialized.
@@ -117,7 +116,6 @@ class CPPCACHE_EXPORT CacheableFileName : public CacheableString {
private:
mutable int m_hashcode;
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/include/geode/CacheableObjectArray.hpp b/cppcache/include/geode/CacheableObjectArray.hpp
index 2c86604..a3f1745 100644
--- a/cppcache/include/geode/CacheableObjectArray.hpp
+++ b/cppcache/include/geode/CacheableObjectArray.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CACHEABLEOBJECTARRAY_H_
+#define GEODE_CACHEABLEOBJECTARRAY_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_CACHEABLEOBJECTARRAY_H_
-#define GEODE_CACHEABLEOBJECTARRAY_H_
-
#include "geode_globals.hpp"
#include "geode_types.hpp"
#include "VectorT.hpp"
@@ -38,6 +38,7 @@ namespace client {
class CPPCACHE_EXPORT CacheableObjectArray : public Cacheable,
public VectorOfCacheable {
public:
+
/**
*@brief serialize this object
**/
@@ -46,7 +47,7 @@ class CPPCACHE_EXPORT CacheableObjectArray : public Cacheable,
/**
*@brief deserialize this object
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/**
* @brief creation function for java Object[]
@@ -99,7 +100,6 @@ class CPPCACHE_EXPORT CacheableObjectArray : public Cacheable,
FRIEND_STD_SHARED_PTR(CacheableObjectArray)
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/include/geode/CacheableString.hpp b/cppcache/include/geode/CacheableString.hpp
index 7a33e4b..3af78d2 100644
--- a/cppcache/include/geode/CacheableString.hpp
+++ b/cppcache/include/geode/CacheableString.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CACHEABLESTRING_H_
+#define GEODE_CACHEABLESTRING_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_CACHEABLESTRING_H_
-#define GEODE_CACHEABLESTRING_H_
-
#include "geode_globals.hpp"
#include "geode_types.hpp"
#include "CacheableKey.hpp"
@@ -62,7 +62,7 @@ class CPPCACHE_EXPORT CacheableString : public CacheableKey {
* Throw IllegalArgumentException if the packed CacheableString is not less
* than 64K bytes.
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/** creation function for strings */
static Serializable* createDeserializable();
@@ -307,7 +307,6 @@ inline CacheablePtr createValueArr(const char* value) {
inline CacheablePtr createValueArr(const wchar_t* value) {
return CacheableString::create(value);
}
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/include/geode/CacheableUndefined.hpp b/cppcache/include/geode/CacheableUndefined.hpp
index b287298..40b5d5a 100644
--- a/cppcache/include/geode/CacheableUndefined.hpp
+++ b/cppcache/include/geode/CacheableUndefined.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CACHEABLEUNDEFINED_H_
+#define GEODE_CACHEABLEUNDEFINED_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_CACHEABLEUNDEFINED_H_
-#define GEODE_CACHEABLEUNDEFINED_H_
-
#include "geode_globals.hpp"
#include "geode_types.hpp"
#include "Cacheable.hpp"
@@ -44,7 +44,7 @@ class CPPCACHE_EXPORT CacheableUndefined : public Cacheable {
/**
*@brief deserialize this object
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/**
* @brief creation function for undefined query result
@@ -93,7 +93,6 @@ class CPPCACHE_EXPORT CacheableUndefined : public Cacheable {
FRIEND_STD_SHARED_PTR(CacheableUndefined)
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/include/geode/PdxInstance.hpp b/cppcache/include/geode/PdxInstance.hpp
index 3676c04..3e92515 100644
--- a/cppcache/include/geode/PdxInstance.hpp
+++ b/cppcache/include/geode/PdxInstance.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_PDXINSTANCE_H_
+#define GEODE_PDXINSTANCE_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_PDXINSTANCE_H_
-#define GEODE_PDXINSTANCE_H_
-
#include "PdxSerializable.hpp"
#include "CacheableBuiltins.hpp"
#include "PdxFieldTypes.hpp"
@@ -29,467 +29,468 @@ namespace geode {
namespace client {
/**
- * PdxInstance provides run time access to the fields of a PDX without
- * deserializing the PDX. Preventing deserialization saves time
- * and memory.
- * The PdxInstance implementation
- * is a light weight wrapper that simply refers to the raw bytes of the PDX
- * that are kept in the cache.
- * Applications can choose to access PdxInstances instead of C++ objects by
- * configuring the Cache to prefer PDX instances during deserialization.
- * This can be done in <code>cache.xml</code> by setting the attribute
- * <code>read-serialized</code>
- * to true on the <code>pdx</code> element. Or it can be done programmatically
- * using
- * {@link CacheFactory#setPdxReadSerialized(boolean) setPdxReadSerialized}
- * method. Once this preference is configured, then any time deserialization of
- * a PDX is done it will deserialize into a PdxInstance. PdxInstance are
- * immutable. If you want to change one call {@link #createWriter}.
- */
+* PdxInstance provides run time access to the fields of a PDX without
+* deserializing the PDX. Preventing deserialization saves time
+* and memory.
+* The PdxInstance implementation
+* is a light weight wrapper that simply refers to the raw bytes of the PDX
+* that are kept in the cache.
+* Applications can choose to access PdxInstances instead of C++ objects by
+* configuring the Cache to prefer PDX instances during deserialization.
+* This can be done in <code>cache.xml</code> by setting the attribute
+* <code>read-serialized</code>
+* to true on the <code>pdx</code> element. Or it can be done programmatically
+* using
+* {@link CacheFactory#setPdxReadSerialized(boolean) setPdxReadSerialized}
+* method. Once this preference is configured, then any time deserialization of a
+* PDX is done it will deserialize into a PdxInstance.
+* PdxInstance are immutable. If you want to change one call {@link
+* #createWriter}.
+*/
class CPPCACHE_EXPORT PdxInstance : public PdxSerializable {
public:
/**
- * @brief destructor
- */
+ * @brief destructor
+ */
virtual ~PdxInstance() {}
/**
- * Deserializes and returns the domain object that this instance represents.
- * For deserialization C++ Native Client requires the domain class to be
- * registered.
- * @return the deserialized domain object.
- *
- * @see serializationRegistry->addPdxType
- */
+ * Deserializes and returns the domain object that this instance represents.
+ * For deserialization C++ Native Client requires the domain class to be
+ * registered.
+ * @return the deserialized domain object.
+ *
+ * @see serializationRegistry->addPdxType
+ */
virtual PdxSerializablePtr getObject() = 0;
/**
- * Checks if the named field exists and returns the result.
- * This can be useful when writing code that handles more than one version of
- * a PDX class.
- * @param fieldname the name of the field to check
- * @return <code>true</code> if the named field exists; otherwise
- * <code>false</code>
- */
+ * Checks if the named field exists and returns the result.
+ * This can be useful when writing code that handles more than one version of
+ * a PDX class.
+ * @param fieldname the name of the field to check
+ * @return <code>true</code> if the named field exists; otherwise
+ * <code>false</code>
+ */
virtual bool hasField(const char* fieldname) = 0;
/**
- * Reads the named field and set its value in CacheablePtr type out param.
- * CacheablePtr type is corresponding to java object type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with CacheablePtr type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- * For deserialization C++ Native Client requires the domain class to be
- * registered.
- *
- * @see serializationRegistry->addPdxType
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in CacheablePtr type out param.
+ * CacheablePtr type is corresponding to java object type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with CacheablePtr type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ * For deserialization C++ Native Client requires the domain class to be
+ * registered.
+ *
+ * @see serializationRegistry->addPdxType
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, CacheablePtr& value) const = 0;
/**
- * Reads the named field and set its value in bool type out param.
- * bool type is corresponding to java boolean type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with bool type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in bool type out param.
+ * bool type is corresponding to java boolean type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with bool type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, bool& value) const = 0;
/**
- * Reads the named field and set its value in signed char type out param.
- * signed char type is corresponding to java byte type.
- * For C++ on Windows and Linux, signed char type is corresponding to int8_t
- * type.
- * However C++ users on Solaris should always use this api after casting
- * int8_t to signed char.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with signed char type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in signed char type out param.
+ * signed char type is corresponding to java byte type.
+ * For C++ on Windows and Linux, signed char type is corresponding to int8_t
+ * type.
+ * However C++ users on Solaris should always use this api after casting int8_t
+ * to signed char.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with signed char type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, signed char& value) const = 0;
/**
- * Reads the named field and set its value in unsigned char type out param.
- * unsigned char type is corresponding to java byte type.
- * For C++ on Windows and Linux, unsigned char type is corresponding to int8_t
- * type.
- * However C++ users on Solaris should always use this api after casting
- * int8_t to unsigned char.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with unsigned char type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in unsigned char type out param.
+ * unsigned char type is corresponding to java byte type.
+ * For C++ on Windows and Linux, unsigned char type is corresponding to int8_t
+ * type.
+ * However C++ users on Solaris should always use this api after casting int8_t
+ * to unsigned char.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with unsigned char type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, unsigned char& value) const = 0;
/**
- * Reads the named field and set its value in int16_t type out param.
- * int16_t type is corresponding to java short type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with int16_t type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in int16_t type out param.
+ * int16_t type is corresponding to java short type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with int16_t type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, int16_t& value) const = 0;
/**
- * Reads the named field and set its value in int32_t type out param.
- * int32_t type is corresponding to java int type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with int32_t type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- */
+ * Reads the named field and set its value in int32_t type out param.
+ * int32_t type is corresponding to java int type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with int32_t type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ */
virtual void getField(const char* fieldname, int32_t& value) const = 0;
/**
- * Reads the named field and set its value in int64_t type out param.
- * int64_t type is corresponding to java long type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with int64_t type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in int64_t type out param.
+ * int64_t type is corresponding to java long type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with int64_t type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, int64_t& value) const = 0;
/**
- * Reads the named field and set its value in float type out param.
- * float type is corresponding to java float type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with float type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in float type out param.
+ * float type is corresponding to java float type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with float type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, float& value) const = 0;
/**
- * Reads the named field and set its value in double type out param.
- * double type is corresponding to java double type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with double type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in double type out param.
+ * double type is corresponding to java double type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with double type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, double& value) const = 0;
/**
- * Reads the named field and set its value in wchar_t type out param.
- * wchar_t type is corresponding to java char type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with wchar_t type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in wchar_t type out param.
+ * wchar_t type is corresponding to java char type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with wchar_t type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldName, wchar_t& value) const = 0;
/**
- * Reads the named field and set its value in char type out param.
- * char type is corresponding to java char type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with char type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in char type out param.
+ * char type is corresponding to java char type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with char type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldName, char& value) const = 0;
/**
- * Reads the named field and set its value in bool array type out param.
- * bool* type is corresponding to java boolean[] type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with bool array type.
- * @param length length is set with number of bool elements.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in bool array type out param.
+ * bool* type is corresponding to java boolean[] type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with bool array type.
+ * @param length length is set with number of bool elements.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, bool** value,
int32_t& length) const = 0;
/**
- * Reads the named field and set its value in signed char array type out
- * param. signed char* type is corresponding to java byte[] type. For C++ on
- * Windows and Linux, signed char* type is corresponding to int8_t* type.
- * However C++ users on Solaris should always use this api after casting
- * int8_t* to signed char*.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with signed char array type.
- * @param length length is set with number of signed char elements.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in signed char array type out param.
+ * signed char* type is corresponding to java byte[] type.
+ * For C++ on Windows and Linux, signed char* type is corresponding to int8_t*
+ * type.
+ * However C++ users on Solaris should always use this api after casting
+ * int8_t* to signed char*.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with signed char array type.
+ * @param length length is set with number of signed char elements.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, signed char** value,
int32_t& length) const = 0;
/**
- * Reads the named field and set its value in unsigned char array type out
- * param.
- * unsigned char* type is corresponding to java byte[] type.
- * For C++ on Windows and Linux, unsigned char* type is corresponding to
- * int8_t* type.
- * However C++ users on Solaris should always use this api after casting
- * int8_t* to unsigned char*.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with unsigned char array type.
- * @param length length is set with number of unsigned char elements.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in unsigned char array type out
+ * param.
+ * unsigned char* type is corresponding to java byte[] type.
+ * For C++ on Windows and Linux, unsigned char* type is corresponding to
+ * int8_t* type.
+ * However C++ users on Solaris should always use this api after casting
+ * int8_t* to unsigned char*.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with unsigned char array type.
+ * @param length length is set with number of unsigned char elements.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, unsigned char** value,
int32_t& length) const = 0;
/**
- * Reads the named field and set its value in int16_t array type out param.
- * int16_t* type is corresponding to java short[] type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with int16_t array type.
- * @param length length is set with number of int16_t elements.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in int16_t array type out param.
+ * int16_t* type is corresponding to java short[] type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with int16_t array type.
+ * @param length length is set with number of int16_t elements.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, int16_t** value,
int32_t& length) const = 0;
/**
- * Reads the named field and set its value in int32_t array type out param.
- * int32_t* type is corresponding to java int[] type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with int32_t array type.
- * @param length length is set with number of int32_t elements.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in int32_t array type out param.
+ * int32_t* type is corresponding to java int[] type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with int32_t array type.
+ * @param length length is set with number of int32_t elements.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, int32_t** value,
int32_t& length) const = 0;
/**
- * Reads the named field and set its value in int64_t array type out param.
- * int64_t* type is corresponding to java long[] type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with int64_t array type.
- * @param length length is set with number of int64_t elements.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in int64_t array type out param.
+ * int64_t* type is corresponding to java long[] type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with int64_t array type.
+ * @param length length is set with number of int64_t elements.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, int64_t** value,
int32_t& length) const = 0;
/**
- * Reads the named field and set its value in float array type out param.
- * float* type is corresponding to java float[] type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with float array type.
- * @param length length is set with number of float elements.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in float array type out param.
+ * float* type is corresponding to java float[] type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with float array type.
+ * @param length length is set with number of float elements.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, float** value,
int32_t& length) const = 0;
/**
- * Reads the named field and set its value in double array type out param.
- * double* type is corresponding to java double[] type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with double array type.
- * @param length length is set with number of double elements.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in double array type out param.
+ * double* type is corresponding to java double[] type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with double array type.
+ * @param length length is set with number of double elements.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, double** value,
int32_t& length) const = 0;
// charArray
/**
- * Reads the named field and set its value in wchar_t array type out param.
- * wchar_t* type is corresponding to java String type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with wchar_t array type.
- * @param length length is set with number of wchar_t* elements.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in wchar_t array type out param.
+ * wchar_t* type is corresponding to java String type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with wchar_t array type.
+ * @param length length is set with number of wchar_t* elements.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldName, wchar_t** value,
int32_t& length) const = 0;
/**
- * Reads the named field and set its value in char array type out param.
- * char* type is corresponding to java String type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with char array type.
- * @param length length is set with number of char* elements.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in char array type out param.
+ * char* type is corresponding to java String type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with char array type.
+ * @param length length is set with number of char* elements.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldName, char** value,
int32_t& length) const = 0;
// String
/**
- * Reads the named field and set its value in wchar_t* type out param.
- * wchar_t* type is corresponding to java String type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with wchar_t type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in wchar_t* type out param.
+ * wchar_t* type is corresponding to java String type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with wchar_t type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, wchar_t** value) const = 0;
/**
- * Reads the named field and set its value in char* type out param.
- * char* type is corresponding to java String type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with char* type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in char* type out param.
+ * char* type is corresponding to java String type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with char* type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, char** value) const = 0;
// StringArray
/**
- * Reads the named field and set its value in wchar_t* array type out param.
- * wchar_t** type is corresponding to java String[] type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with wchar_t* array type.
- * @param length length is set with number of wchar_t** elements.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in wchar_t* array type out param.
+ * wchar_t** type is corresponding to java String[] type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with wchar_t* array type.
+ * @param length length is set with number of wchar_t** elements.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, wchar_t*** value,
int32_t& length) const = 0;
/**
- * Reads the named field and set its value in char* array type out param.
- * char** type is corresponding to java String[] type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with char* array type.
- * @param length length is set with number of char** elements.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in char* array type out param.
+ * char** type is corresponding to java String[] type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with char* array type.
+ * @param length length is set with number of char** elements.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname, char*** value,
int32_t& length) const = 0;
/**
- * Reads the named field and set its value in CacheableDatePtr type out param.
- * CacheableDatePtr type is corresponding to java Java.util.date type.
- * @param fieldname name of the field to read
- * @param value value of the field to be set with CacheableDatePtr type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in CacheableDatePtr type out param.
+ * CacheableDatePtr type is corresponding to java Java.util.date type.
+ * @param fieldname name of the field to read
+ * @param value value of the field to be set with CacheableDatePtr type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname,
CacheableDatePtr& value) const = 0;
/**
- * Reads the named field and set its value in array of byte arrays type out
- * param.
- * int8_t** type is corresponding to java byte[][] type.
- * @param fieldname name of the field to read.
- * @param value value of the field to be set with array of byte arrays type.
- * @param arrayLength arrayLength is set to the number of byte arrays.
- * @param elementLength elementLength is set to individual byte array lengths.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in array of byte arrays type out
+ * param.
+ * int8_t** type is corresponding to java byte[][] type.
+ * @param fieldname name of the field to read.
+ * @param value value of the field to be set with array of byte arrays type.
+ * @param arrayLength arrayLength is set to the number of byte arrays.
+ * @param elementLength elementLength is set to individual byte array lengths.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldName, int8_t*** value,
int32_t& arrayLength,
int32_t*& elementLength) const = 0;
/**
- * Reads the named field and set its value in CacheableObjectArrayPtr type out
- * param.
- * For deserialization C++ Native Client requires the domain class to be
- * registered.
- * CacheableObjectArrayPtr type is corresponding to java Object[] type.
- * @param fieldname name of the field to read.
- * @param value value of the field to be set with CacheableObjectArrayPtr
- * type.
- * @throws IllegalStateException if PdxInstance doesn't has the named field.
- *
- * @see serializationRegistry->addPdxType
- * @see PdxInstance#hasField
- */
+ * Reads the named field and set its value in CacheableObjectArrayPtr type out
+ * param.
+ * For deserialization C++ Native Client requires the domain class to be
+ * registered.
+ * CacheableObjectArrayPtr type is corresponding to java Object[] type.
+ * @param fieldname name of the field to read.
+ * @param value value of the field to be set with CacheableObjectArrayPtr type.
+ * @throws IllegalStateException if PdxInstance doesn't has the named field.
+ *
+ * @see serializationRegistry->addPdxType
+ * @see PdxInstance#hasField
+ */
virtual void getField(const char* fieldname,
CacheableObjectArrayPtr& value) const = 0;
/**
- * Checks if the named field was {@link PdxWriter#markIdentityField}marked as
- * an identity field.
- * Note that if no fields have been marked then all the fields are used as
- * identity fields even though
- * this method will return <code>false</code> since none of them have been
- * <em>marked</em>.
- * @param fieldname the name of the field to check
- * @return <code>true</code> if the named field exists and was marked as an
- * identify field; otherwise <code>false</code>
- */
+ * Checks if the named field was {@link PdxWriter#markIdentityField}marked as
+ * an identity field.
+ * Note that if no fields have been marked then all the fields are used as
+ * identity fields even though
+ * this method will return <code>false</code> since none of them have been
+ * <em>marked</em>.
+ * @param fieldname the name of the field to check
+ * @return <code>true</code> if the named field exists and was marked as an
+ * identify field; otherwise <code>false</code>
+ */
virtual bool isIdentityField(const char* fieldname) = 0;
/**
- * Creates and returns a {@link WritablePdxInstance} whose initial
- * values are those of this PdxInstance.
- * This call returns a copy of the current field values so modifications
- * made to the returned value will not modify this PdxInstance.
- * @return a {@link WritablePdxInstance}
- */
+ * Creates and returns a {@link WritablePdxInstance} whose initial
+ * values are those of this PdxInstance.
+ * This call returns a copy of the current field values so modifications
+ * made to the returned value will not modify this PdxInstance.
+ * @return a {@link WritablePdxInstance}
+ */
virtual WritablePdxInstancePtr createWriter() = 0;
/**
- * Generates a hashcode based on the identity fields of
- * this PdxInstance.
- * <p>If a PdxInstance has marked identity fields using {@link
- * PdxWriter#markIdentityField}
- * then only the marked identity fields are its identity fields.
- * Otherwise all its fields are identity fields.
- * </p>
- * For deserialization C++ Native Client requires the domain class to be
- * registered.
- * If the field is an array then all array
- * elements are used for hashcode computation.
- * Otherwise the raw bytes of its value are used to compute the hash code.
- * @throws IllegalStateException if the field contains an element that is not
- * of CacheableKey derived type.
- *
- * @see serializationRegistry->addPdxType
- */
+ * Generates a hashcode based on the identity fields of
+ * this PdxInstance.
+ * <p>If a PdxInstance has marked identity fields using {@link
+ * PdxWriter#markIdentityField}
+ * then only the marked identity fields are its identity fields.
+ * Otherwise all its fields are identity fields.
+ * </p>
+ * For deserialization C++ Native Client requires the domain class to be
+ * registered.
+ * If the field is an array then all array
+ * elements are used for hashcode computation.
+ * Otherwise the raw bytes of its value are used to compute the hash code.
+ * @throws IllegalStateException if the field contains an element that is not
+ * of CacheableKey derived type.
+ *
+ * @see serializationRegistry->addPdxType
+ */
virtual int32_t hashcode() const = 0;
/**
- * Prints out all of the identity fields of this PdxInstance.
- * <p>If a PdxInstance has marked identity fields using {@link
- * PdxWriter#markIdentityField}
- * then only the marked identity fields are its identity fields.
- * Otherwise all its fields are identity fields</p>.
- * For deserialization C++ Native Client requires the domain class to be
- * registered.
- *
- * @see serializationRegistry->addPdxType
- */
+ * Prints out all of the identity fields of this PdxInstance.
+ * <p>If a PdxInstance has marked identity fields using {@link
+ * PdxWriter#markIdentityField}
+ * then only the marked identity fields are its identity fields.
+ * Otherwise all its fields are identity fields</p>.
+ * For deserialization C++ Native Client requires the domain class to be
+ * registered.
+ *
+ * @see serializationRegistry->addPdxType
+ */
virtual CacheableStringPtr toString() const = 0;
/**
@@ -503,52 +504,53 @@ class CPPCACHE_EXPORT PdxInstance : public PdxSerializable {
* @brief deserialize this object, typical implementation should return
* the 'this' pointer. This is an internal method.
*/
- virtual void fromData(DataInput& input) {
+ virtual Serializable* fromData(DataInput& input) {
return PdxSerializable::fromData(input);
}
/**
- * Returns true if the given CacheableKey derived object is equals to this
- * instance.
- * <p>If <code>other</code> is not a PdxInstance then it is not equal to this
- * instance.
- * NOTE: Even if <code>other</code> is the result of calling {@link
- * #getObject()} it will not
- * be equal to this instance</p>.
- * <p>Otherwise equality of two PdxInstances is determined as follows:
- * <ol>
- * <li>The domain class name must be equal for both PdxInstances
- * <li>Each identity field must be equal.
- * </ol> </p>
- * If one of the instances does not have a field that the other one does then
- * equals will assume it
- * has the field with a default value.
- * If a PdxInstance has marked identity fields using {@link
- * PdxWriter#markIdentityField markIdentityField}
- * then only the marked identity fields are its identity fields.
- * Otherwise all its fields are identity fields.
- * <p>An identity field is equal if all the following are true:
- * <ol>
- * <li>The field name is equal.
- * <li>The field type is equal.
- * <li>The field value is equal.
- * </ol> </p>
- * If an identity field is of type derived from <code>Cacheable</code> then it
- * is deserialized. For deserialization C++ Native Client requires the domain
- * class to be registered.
- * If the deserialized object is an array then all array elements
- * are used to determine equality.
- * If an identity field is of type <code>CacheableObjectArray</code> then it
- * is deserialized and all array elements are used to determine equality. For
- * all other field types the value does not need to be deserialized. Instead
- * the serialized raw bytes are compared and used to determine equality.
- * @param other the other instance to compare to this.
- * @return <code>true</code> if this instance is equal to <code>other</code>.
- * @throws IllegalStateException if the field contains an element that is not
- * of CacheableKey derived type.
- *
- * @see serializationRegistry->addPdxType
- */
+ * Returns true if the given CacheableKey derived object is equals to this
+ * instance.
+ * <p>If <code>other</code> is not a PdxInstance then it is not equal to this
+ * instance.
+ * NOTE: Even if <code>other</code> is the result of calling {@link
+ * #getObject()} it will not
+ * be equal to this instance</p>.
+ * <p>Otherwise equality of two PdxInstances is determined as follows:
+ * <ol>
+ * <li>The domain class name must be equal for both PdxInstances
+ * <li>Each identity field must be equal.
+ * </ol> </p>
+ * If one of the instances does not have a field that the other one does then
+ * equals will assume it
+ * has the field with a default value.
+ * If a PdxInstance has marked identity fields using {@link
+ * PdxWriter#markIdentityField markIdentityField}
+ * then only the marked identity fields are its identity fields.
+ * Otherwise all its fields are identity fields.
+ * <p>An identity field is equal if all the following are true:
+ * <ol>
+ * <li>The field name is equal.
+ * <li>The field type is equal.
+ * <li>The field value is equal.
+ * </ol> </p>
+ * If an identity field is of type derived from <code>Cacheable</code> then it
+ * is deserialized. For deserialization C++ Native Client requires the domain
+ * class to be registered.
+ * If the deserialized object is an array then all array elements
+ * are used to determine equality.
+ * If an identity field is of type <code>CacheableObjectArray</code> then it is
+ * deserialized and all array elements are used to determine equality.
+ * For all other field types the value does not need to be deserialized.
+ * Instead the serialized raw bytes are compared and used to determine
+ * equality.
+ * @param other the other instance to compare to this.
+ * @return <code>true</code> if this instance is equal to <code>other</code>.
+ * @throws IllegalStateException if the field contains an element that is not
+ * of CacheableKey derived type.
+ *
+ * @see serializationRegistry->addPdxType
+ */
virtual bool operator==(const CacheableKey& other) const = 0;
/** @return the size of the object in bytes
@@ -558,9 +560,9 @@ class CPPCACHE_EXPORT PdxInstance : public PdxSerializable {
virtual uint32_t objectSize() const = 0;
/**
- * Return an unmodifiable list of the field names on this PdxInstance.
- * @return an unmodifiable list of the field names on this PdxInstance
- */
+ * Return an unmodifiable list of the field names on this PdxInstance.
+ * @return an unmodifiable list of the field names on this PdxInstance
+ */
virtual CacheableStringArrayPtr getFieldNames() = 0;
// From PdxSerializable
@@ -572,35 +574,36 @@ class CPPCACHE_EXPORT PdxInstance : public PdxSerializable {
virtual void toData(PdxWriterPtr output) = 0;
/**
- * @brief Deserialize this object. This is an internal method.
- * @param PdxReader to Deserialize the PDX object
- */
+ * @brief Deserialize this object. This is an internal method.
+ * @param PdxReader to Deserialize the PDX object
+ */
virtual void fromData(PdxReaderPtr input) = 0;
/**
- * Return the full name of the class that this pdx instance represents.
- * @return the name of the class that this pdx instance represents.
- * @throws IllegalStateException if the PdxInstance typeid is not defined yet,
- * to get classname
- * or if PdxType is not defined for PdxInstance.
- */
+ * Return the full name of the class that this pdx instance represents.
+ * @return the name of the class that this pdx instance represents.
+ * @throws IllegalStateException if the PdxInstance typeid is not defined yet,
+ * to get classname
+ * or if PdxType is not defined for PdxInstance.
+ */
virtual const char* getClassName() const = 0;
/**
- * Return the type @see PdxInstance::PdxFieldTypes of the field in the pdx
- * instance.
- * @return the type @see PdxInstance::PdxFieldTypes of the field in the pdx
- * instance.
- * @throws IllegalStateException if the PdxInstance typeid is not defined yet,
- * to get classname or if PdxType is not defined for PdxInstance.
- */
+* Return the type @see PdxInstance::PdxFieldTypes of the field in the pdx
+* instance.
+* @return the type @see PdxInstance::PdxFieldTypes of the field in the pdx
+* instance.
+* @throws IllegalStateException if the PdxInstance typeid is not defined yet, to
+* get classname
+* or if PdxType is not defined for PdxInstance.
+*/
virtual PdxFieldTypes::PdxFieldType getFieldType(
const char* fieldname) const = 0;
protected:
/**
- * @brief constructors
- */
+ * @brief constructors
+ */
PdxInstance() {}
private:
@@ -608,7 +611,6 @@ class CPPCACHE_EXPORT PdxInstance : public PdxSerializable {
PdxInstance(const PdxInstance& other);
void operator=(const PdxInstance& other);
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/include/geode/PdxSerializable.hpp b/cppcache/include/geode/PdxSerializable.hpp
index fa411dd..eb096d0 100644
--- a/cppcache/include/geode/PdxSerializable.hpp
+++ b/cppcache/include/geode/PdxSerializable.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_PDXSERIALIZABLE_H_
+#define GEODE_PDXSERIALIZABLE_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_PDXSERIALIZABLE_H_
-#define GEODE_PDXSERIALIZABLE_H_
-
#include "CacheableKey.hpp"
namespace apache {
@@ -80,7 +80,7 @@ class CPPCACHE_EXPORT PdxSerializable : public CacheableKey {
*@brief deserialize this object, typical implementation should return
* the 'this' pointer.
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/**
*@brief return the classId of the instance being serialized.
@@ -101,7 +101,6 @@ class CPPCACHE_EXPORT PdxSerializable : public CacheableKey {
*/
virtual const char* getClassName() const = 0;
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/include/geode/PdxWrapper.hpp b/cppcache/include/geode/PdxWrapper.hpp
index 139384b..594fb08 100644
--- a/cppcache/include/geode/PdxWrapper.hpp
+++ b/cppcache/include/geode/PdxWrapper.hpp
@@ -85,7 +85,7 @@ class CPPCACHE_EXPORT PdxWrapper : public PdxSerializable {
*@brief deserialize this object, typical implementation should return
* the 'this' pointer.
**/
- void fromData(DataInput& input);
+ Serializable* fromData(DataInput& input);
/**
*@brief return the classId of the instance being serialized.
* This is used by deserialization to determine what instance
diff --git a/cppcache/include/geode/Properties.hpp b/cppcache/include/geode/Properties.hpp
index 5fb0a61..e0f7861 100644
--- a/cppcache/include/geode/Properties.hpp
+++ b/cppcache/include/geode/Properties.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_PROPERTIES_H_
+#define GEODE_PROPERTIES_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_PROPERTIES_H_
-#define GEODE_PROPERTIES_H_
-
/**
* @file
*/
@@ -130,7 +130,7 @@ class CPPCACHE_EXPORT Properties : public Serializable {
/**
*@brief deserialize this object
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/** Return an empty instance for deserialization. */
static Serializable* createDeserializable();
@@ -157,7 +157,6 @@ class CPPCACHE_EXPORT Properties : public Serializable {
Properties(const Properties&);
const Properties& operator=(const Properties&);
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/include/geode/RegionAttributes.hpp b/cppcache/include/geode/RegionAttributes.hpp
index f3b7813..9d24293 100644
--- a/cppcache/include/geode/RegionAttributes.hpp
+++ b/cppcache/include/geode/RegionAttributes.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_REGIONATTRIBUTES_H_
+#define GEODE_REGIONATTRIBUTES_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_REGIONATTRIBUTES_H_
-#define GEODE_REGIONATTRIBUTES_H_
-
/**
* @file
*/
@@ -39,7 +39,6 @@
namespace apache {
namespace geode {
namespace client {
-
class CacheImpl;
/**
@@ -189,7 +188,7 @@ class CPPCACHE_EXPORT RegionAttributes : public Serializable {
virtual void toData(DataOutput& out) const;
/** Initialize members from serialized data. */
- virtual void fromData(DataInput& in);
+ virtual Serializable* fromData(DataInput& in);
/** Return an empty instance for deserialization. */
static Serializable* createDeserializable();
@@ -314,7 +313,6 @@ class CPPCACHE_EXPORT RegionAttributes : public Serializable {
*/
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
@@ -350,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;
@@ -395,10 +394,11 @@ class CPPCACHE_EXPORT RegionAttributes : public Serializable {
friend class RegionInternal;
friend class RegionXmlCreation;
+
private:
+
FRIEND_STD_SHARED_PTR(RegionAttributes)
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/include/geode/Serializable.hpp b/cppcache/include/geode/Serializable.hpp
index 751b4d7..6e21260 100644
--- a/cppcache/include/geode/Serializable.hpp
+++ b/cppcache/include/geode/Serializable.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_SERIALIZABLE_H_
+#define GEODE_SERIALIZABLE_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_SERIALIZABLE_H_
-#define GEODE_SERIALIZABLE_H_
-
/**
* @file
*/
@@ -35,16 +35,16 @@ namespace client {
class DataOutput;
class DataInput;
-typedef void (*CliCallbackMethod)(Cache &cache);
+typedef void (*CliCallbackMethod)(Cache& cache);
/** @brief signature of functions passed to registerType. Such functions
* should return an empty instance of the type they represent. The instance
* will typically be initialized immediately after creation by a call to
* fromData().
*/
-using TypeFactoryMethod = std::function<Serializable *()>;
+using TypeFactoryMethod = std::function<Serializable*()>;
-typedef PdxSerializable *(*TypeFactoryMethodPdx)();
+typedef PdxSerializable* (*TypeFactoryMethodPdx)();
/**
* @class Serializable Serializable.hpp
* This abstract base class is the superclass of all user objects
@@ -57,12 +57,13 @@ class CPPCACHE_EXPORT Serializable
/**
*@brief serialize this object
**/
- virtual void toData(DataOutput &output) const = 0;
+ virtual void toData(DataOutput& output) const = 0;
/**
- *@brief deserialize this object.
+ *@brief deserialize this object, typical implementation should return
+ * the 'this' pointer.
**/
- virtual void fromData(DataInput &input) = 0;
+ virtual Serializable* fromData(DataInput& input) = 0;
/**
*@brief Return the classId of the instance being serialized.
@@ -134,10 +135,9 @@ class CPPCACHE_EXPORT Serializable
private:
// Never defined.
- Serializable(const Serializable &other);
- void operator=(const Serializable &other);
+ Serializable(const Serializable& other);
+ void operator=(const Serializable& other);
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/include/geode/Struct.hpp b/cppcache/include/geode/Struct.hpp
index 6dbd296..345363a 100644
--- a/cppcache/include/geode/Struct.hpp
+++ b/cppcache/include/geode/Struct.hpp
@@ -111,7 +111,7 @@ class CPPCACHE_EXPORT Struct : public Serializable {
/**
* Deserializes the Struct object from the DataInput. @TODO KN: better comment
*/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/**
* Serializes this Struct object. @TODO KN: better comment
@@ -153,7 +153,8 @@ class CPPCACHE_EXPORT Struct : public Serializable {
Struct();
- typedef std::unordered_map<std::string, int32_t> FieldNames;
+ typedef std::unordered_map<std::string, int32_t>
+ FieldNames;
FieldNames m_fieldNames;
std::vector<SerializablePtr> m_fieldValues;
diff --git a/cppcache/include/geode/UserFunctionExecutionException.hpp b/cppcache/include/geode/UserFunctionExecutionException.hpp
index 0d0efb6..01e5a40 100644
--- a/cppcache/include/geode/UserFunctionExecutionException.hpp
+++ b/cppcache/include/geode/UserFunctionExecutionException.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_USERFUNCTIONEXECUTIONEXCEPTION_H_
+#define GEODE_USERFUNCTIONEXECUTIONEXCEPTION_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,18 +20,12 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_USERFUNCTIONEXECUTIONEXCEPTION_H_
-#define GEODE_USERFUNCTIONEXECUTIONEXCEPTION_H_
-
#include "Serializable.hpp"
#include "CacheableString.hpp"
namespace apache {
namespace geode {
namespace client {
-
class UserFunctionExecutionException;
typedef std::shared_ptr<UserFunctionExecutionException>
UserFunctionExecutionExceptionPtr;
@@ -62,7 +61,7 @@ class UserFunctionExecutionException : public Serializable {
* the 'this' pointer.
* @throws IllegalStateException If this api is called from User code.
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/**
*@brief Return the classId of the instance being serialized.
@@ -119,7 +118,6 @@ class UserFunctionExecutionException : public Serializable {
CacheableStringPtr m_message; // error message
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/integration-test/DeltaEx.hpp b/cppcache/integration-test/DeltaEx.hpp
index 2b0115d..263f652 100644
--- a/cppcache/integration-test/DeltaEx.hpp
+++ b/cppcache/integration-test/DeltaEx.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_INTEGRATION_TEST_DELTAEX_H_
+#define GEODE_INTEGRATION_TEST_DELTAEX_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_INTEGRATION_TEST_DELTAEX_H_
-#define GEODE_INTEGRATION_TEST_DELTAEX_H_
-
#include "fw_dunit.hpp"
#include <geode/GeodeCppCache.hpp>
#include <ace/OS.h>
@@ -64,9 +64,10 @@ class DeltaEx : public Cacheable, public Delta {
output.writeInt(counter);
toDataCount++;
}
- virtual void fromData(DataInput& input) {
+ virtual Serializable* fromData(DataInput& input) {
input.readInt(&counter);
fromDataCount++;
+ return this;
}
virtual int32_t classId() const { return 1; }
virtual uint32_t objectSize() const { return 0; }
diff --git a/cppcache/integration-test/testSerialization.cpp b/cppcache/integration-test/testSerialization.cpp
index 4e96700..8f9bf79 100644
--- a/cppcache/integration-test/testSerialization.cpp
+++ b/cppcache/integration-test/testSerialization.cpp
@@ -84,11 +84,12 @@ class OtherType : public Serializable {
virtual uint32_t objectSize() const { return sizeof(CData); }
- virtual void fromData(DataInput& input) {
+ virtual Serializable* fromData(DataInput& input) {
int32_t size = 0;
input.readArrayLen(&size);
input.readBytesOnly(reinterpret_cast<uint8_t*>(&m_struct), size);
input.readInt(&m_classIdToReturn);
+ return this;
}
static Serializable* createDeserializable() {
diff --git a/cppcache/src/BucketServerLocation.hpp b/cppcache/src/BucketServerLocation.hpp
index 53e2264..78398ab 100644
--- a/cppcache/src/BucketServerLocation.hpp
+++ b/cppcache/src/BucketServerLocation.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_BUCKETSERVERLOCATION_H_
+#define GEODE_BUCKETSERVERLOCATION_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,18 +20,12 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_BUCKETSERVERLOCATION_H_
-#define GEODE_BUCKETSERVERLOCATION_H_
-
#include "ServerLocation.hpp"
#include <string>
namespace apache {
namespace geode {
namespace client {
-
_GF_PTR_DEF_(BucketServerLocation, BucketServerLocationPtr)
class BucketServerLocation : public ServerLocation {
@@ -110,9 +109,9 @@ class BucketServerLocation : public ServerLocation {
}
}
- void fromData(apache::geode::client::DataInput& input) {
+ BucketServerLocation* fromData(apache::geode::client::DataInput& input) {
ServerLocation::fromData(input);
- input.readInt(&m_bucketId);
+ input.readInt((int32_t*)&m_bucketId);
input.readBoolean(&m_isPrimary);
input.read(&m_version);
input.read((&m_numServerGroups));
@@ -127,6 +126,7 @@ class BucketServerLocation : public ServerLocation {
m_serverGroups =
CacheableStringArray::createNoCopy(serverGroups, m_numServerGroups);
}
+ return this;
}
uint32_t objectSize() const {
@@ -173,7 +173,6 @@ class BucketServerLocation : public ServerLocation {
inline CacheableStringArrayPtr getServerGroups() { return m_serverGroups; }
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/CacheFactory.cpp b/cppcache/src/CacheFactory.cpp
index 8ef89f9..ca9d92b 100644
--- a/cppcache/src/CacheFactory.cpp
+++ b/cppcache/src/CacheFactory.cpp
@@ -30,6 +30,8 @@
#include <string>
#include <DistributedSystemImpl.hpp>
#include <SerializationRegistry.hpp>
+#include <PdxInstantiator.hpp>
+#include <PdxEnumInstantiator.hpp>
#include <PdxType.hpp>
#include <PdxTypeRegistry.hpp>
#include "DiskVersionTag.hpp"
@@ -50,8 +52,9 @@ CacheFactoryPtr CacheFactory::createCacheFactory(
return std::make_shared<CacheFactory>(configPtr);
}
-void CacheFactory::create_(const char* name, const char* id_data,
- CachePtr& cptr, bool readPdxSerialized) {
+void CacheFactory::create_(const char* name,
+ const char* id_data, CachePtr& cptr,
+ bool readPdxSerialized) {
cptr = nullptr;
if (name == nullptr) {
throw IllegalArgumentException("CacheFactory::create: name is nullptr");
@@ -93,11 +96,10 @@ CachePtr CacheFactory::create() {
TXCommitMessage::create,
std::ref(*(cache->m_cacheImpl->getMemberListForVersionStamp()))));
- // cache->m_cacheImpl->getSerializationRegistry()->addType(
- // GeodeTypeIdsImpl::PDX, PdxInstantiator::createDeserializable);
- // cache->m_cacheImpl->getSerializationRegistry()->addType(
- // GeodeTypeIds::CacheableEnum,
- // PdxEnumInstantiator::createDeserializable);
+ cache->m_cacheImpl->getSerializationRegistry()->addType(
+ GeodeTypeIdsImpl::PDX, PdxInstantiator::createDeserializable);
+ cache->m_cacheImpl->getSerializationRegistry()->addType(
+ GeodeTypeIds::CacheableEnum, PdxEnumInstantiator::createDeserializable);
cache->m_cacheImpl->getSerializationRegistry()->addType(
GeodeTypeIds::PdxType,
std::bind(PdxType::CreateDeserializable,
diff --git a/cppcache/src/CacheableDate.cpp b/cppcache/src/CacheableDate.cpp
index 04b7b7b..40adad8 100644
--- a/cppcache/src/CacheableDate.cpp
+++ b/cppcache/src/CacheableDate.cpp
@@ -40,7 +40,10 @@ void CacheableDate::toData(DataOutput& output) const {
output.writeInt(m_timevalue);
}
-void CacheableDate::fromData(DataInput& input) { input.readInt(&m_timevalue); }
+Serializable* CacheableDate::fromData(DataInput& input) {
+ input.readInt(&m_timevalue);
+ return this;
+}
Serializable* CacheableDate::createDeserializable() {
return new CacheableDate();
diff --git a/cppcache/src/CacheableEnum.cpp b/cppcache/src/CacheableEnum.cpp
index 32e678f..5e76483 100644
--- a/cppcache/src/CacheableEnum.cpp
+++ b/cppcache/src/CacheableEnum.cpp
@@ -49,19 +49,20 @@ void CacheableEnum::toData(apache::geode::client::DataOutput& output) const {
output.writeArrayLen(enumVal & 0xFFFFFF);
}
-void CacheableEnum::fromData(apache::geode::client::DataInput& input) {
+Serializable* CacheableEnum::fromData(apache::geode::client::DataInput& input) {
int8_t dsId;
input.read(&dsId);
int32_t arrLen;
input.readArrayLen(&arrLen);
int enumId = (dsId << 24) | (arrLen & 0xFFFFFF);
- auto enumVal = PdxHelper::getEnum(
+ EnumInfoPtr enumVal = PdxHelper::getEnum(
enumId,
CacheRegionHelper::getCacheImpl(input.getCache())->getPdxTypeRegistry());
m_enumClassName = enumVal->getEnumClassName();
m_enumName = enumVal->getEnumName();
m_ordinal = enumVal->getEnumOrdinal();
+ return enumVal.get();
}
int32_t CacheableEnum::hashcode() const {
diff --git a/cppcache/src/CacheableFileName.cpp b/cppcache/src/CacheableFileName.cpp
index 7f46047..16715e2 100644
--- a/cppcache/src/CacheableFileName.cpp
+++ b/cppcache/src/CacheableFileName.cpp
@@ -31,9 +31,10 @@ void CacheableFileName::toData(DataOutput& output) const {
CacheableString::toData(output);
}
-void CacheableFileName::fromData(DataInput& input) {
+Serializable* CacheableFileName::fromData(DataInput& input) {
input.read(&m_type);
- CacheableString::fromData(input);
+ (void)CacheableString::fromData(input);
+ return this;
}
int32_t CacheableFileName::classId() const { return 0; }
diff --git a/cppcache/src/CacheableObjectArray.cpp b/cppcache/src/CacheableObjectArray.cpp
index 35de170..75a38e9 100644
--- a/cppcache/src/CacheableObjectArray.cpp
+++ b/cppcache/src/CacheableObjectArray.cpp
@@ -36,7 +36,7 @@ void CacheableObjectArray::toData(DataOutput& output) const {
}
}
-void CacheableObjectArray::fromData(DataInput& input) {
+Serializable* CacheableObjectArray::fromData(DataInput& input) {
int32_t len;
input.readArrayLen(&len);
if (len >= 0) {
@@ -52,6 +52,7 @@ void CacheableObjectArray::fromData(DataInput& input) {
push_back(obj);
}
}
+ return this;
}
int32_t CacheableObjectArray::classId() const { return 0; }
diff --git a/cppcache/src/CacheableObjectPartList.cpp b/cppcache/src/CacheableObjectPartList.cpp
index 93dd7c8..2484423 100644
--- a/cppcache/src/CacheableObjectPartList.cpp
+++ b/cppcache/src/CacheableObjectPartList.cpp
@@ -31,7 +31,7 @@ void CacheableObjectPartList::toData(DataOutput& output) const {
"CacheableObjectPartList::toData not implemented");
}
-void CacheableObjectPartList::fromData(DataInput& input) {
+Serializable* CacheableObjectPartList::fromData(DataInput& input) {
bool hasKeys;
input.readBoolean(&hasKeys);
int32_t len;
@@ -121,6 +121,7 @@ void CacheableObjectPartList::fromData(DataInput& input) {
*m_keysOffset += len;
}
}
+ return this;
}
int32_t CacheableObjectPartList::classId() const { return 0; }
diff --git a/cppcache/src/CacheableObjectPartList.hpp b/cppcache/src/CacheableObjectPartList.hpp
index eba59b6..35e9d39 100644
--- a/cppcache/src/CacheableObjectPartList.hpp
+++ b/cppcache/src/CacheableObjectPartList.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CACHEABLEOBJECTPARTLIST_H_
+#define GEODE_CACHEABLEOBJECTPARTLIST_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_CACHEABLEOBJECTPARTLIST_H_
-#define GEODE_CACHEABLEOBJECTPARTLIST_H_
-
#include <geode/geode_globals.hpp>
#include <geode/geode_types.hpp>
#include <geode/DataOutput.hpp>
@@ -37,7 +37,6 @@
namespace apache {
namespace geode {
namespace client {
-
class ThinClientRegion;
/**
@@ -120,7 +119,7 @@ class CacheableObjectPartList : public Cacheable {
/**
*@brief deserialize this object
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/**
* @brief creation function for java Object[]
@@ -154,7 +153,6 @@ class CacheableObjectPartList : public Cacheable {
};
typedef std::shared_ptr<CacheableObjectPartList> CacheableObjectPartListPtr;
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/CacheableString.cpp b/cppcache/src/CacheableString.cpp
index b609df8..eddba1c 100644
--- a/cppcache/src/CacheableString.cpp
+++ b/cppcache/src/CacheableString.cpp
@@ -42,7 +42,7 @@ void CacheableString::toData(DataOutput& output) const {
}
}
-void CacheableString::fromData(DataInput& input) {
+Serializable* CacheableString::fromData(DataInput& input) {
uint16_t shortLen = 0;
if (m_type == GF_STRING) {
input.readASCII(reinterpret_cast<char**>(&m_str), &shortLen);
@@ -55,6 +55,7 @@ void CacheableString::fromData(DataInput& input) {
} else if (m_type == GF_WIDESTRING_HUGE) {
input.readUTFHuge(reinterpret_cast<wchar_t**>(&m_str), &m_len);
}
+ return this;
}
Serializable* CacheableString::createDeserializable() {
diff --git a/cppcache/src/CacheableToken.cpp b/cppcache/src/CacheableToken.cpp
index d0918af..50de562 100644
--- a/cppcache/src/CacheableToken.cpp
+++ b/cppcache/src/CacheableToken.cpp
@@ -46,8 +46,9 @@ void CacheableToken::toData(DataOutput& output) const {
output.writeInt(static_cast<int32_t>(m_value));
}
-void CacheableToken::fromData(DataInput& input) {
+Serializable* CacheableToken::fromData(DataInput& input) {
input.readInt(reinterpret_cast<int32_t*>(&m_value));
+ return this;
}
int32_t CacheableToken::classId() const { return 0; }
diff --git a/cppcache/src/CacheableToken.hpp b/cppcache/src/CacheableToken.hpp
index 99e67a9..d4a2720 100644
--- a/cppcache/src/CacheableToken.hpp
+++ b/cppcache/src/CacheableToken.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CACHEABLETOKEN_H_
+#define GEODE_CACHEABLETOKEN_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_CACHEABLETOKEN_H_
-#define GEODE_CACHEABLETOKEN_H_
-
#include <geode/geode_globals.hpp>
#include <geode/Cacheable.hpp>
@@ -56,7 +56,7 @@ class CPPCACHE_EXPORT CacheableToken : public Cacheable {
/**
*@brief deserialize this object
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/**
* @brief creation function for strings.
@@ -126,7 +126,6 @@ class CPPCACHE_EXPORT CacheableToken : public Cacheable {
void operator=(const CacheableToken& other);
CacheableToken(const CacheableToken& other);
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/CacheableUndefined.cpp b/cppcache/src/CacheableUndefined.cpp
index d7fd1ee..5d3bcf6 100644
--- a/cppcache/src/CacheableUndefined.cpp
+++ b/cppcache/src/CacheableUndefined.cpp
@@ -26,7 +26,7 @@ namespace client {
void CacheableUndefined::toData(DataOutput& output) const {}
-void CacheableUndefined::fromData(DataInput& input) {}
+Serializable* CacheableUndefined::fromData(DataInput& input) { return this; }
int32_t CacheableUndefined::classId() const { return 0; }
diff --git a/cppcache/src/CachedDeserializableHelper.hpp b/cppcache/src/CachedDeserializableHelper.hpp
new file mode 100644
index 0000000..8a96705
--- /dev/null
+++ b/cppcache/src/CachedDeserializableHelper.hpp
@@ -0,0 +1,106 @@
+#pragma once
+
+#ifndef GEODE_CACHEDDESERIALIZABLEHELPER_H_
+#define GEODE_CACHEDDESERIALIZABLEHELPER_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/Cacheable.hpp>
+#include <geode/DataInput.hpp>
+#include <geode/ExceptionTypes.hpp>
+#include "GeodeTypeIdsImpl.hpp"
+
+namespace apache {
+namespace geode {
+namespace client {
+/**
+ * Helper class to deserialize bytes received from GFE in the form of
+ * PREFER_BYTES_CACHED_DESERIALIZABLE = -65, or
+ * VM_CACHED_DESERIALIZABLE = -64.
+ *
+ *
+ */
+class CachedDeserializableHelper : public Cacheable,
+ private NonCopyable,
+ private NonAssignable {
+ private:
+ int8_t m_typeId;
+ SerializablePtr m_intermediate;
+
+ // default constructor disabled
+ CachedDeserializableHelper();
+ CachedDeserializableHelper(int8_t typeId) : m_typeId(typeId) {}
+
+ public:
+ /**
+ *@brief serialize this object
+ **/
+ virtual void toData(DataOutput& output) const {
+ throw IllegalStateException(
+ "CachedDeserializableHelper::toData should never have been called.");
+ }
+
+ /**
+ *@brief deserialize this object
+ **/
+ virtual Serializable* fromData(DataInput& input) {
+ int32_t arrayLen;
+ input.readArrayLen(&arrayLen);
+ input.readObject(m_intermediate);
+ return m_intermediate.get();
+ }
+
+ /**
+ * @brief creation function
+ */
+ inline static Serializable* createForPreferBytesDeserializable() {
+ return new CachedDeserializableHelper(
+ GeodeTypeIdsImpl::PreferBytesCachedDeserializable);
+ }
+
+ /**
+ * @brief creation function
+ */
+ inline static Serializable* createForVmCachedDeserializable() {
+ return new CachedDeserializableHelper(
+ GeodeTypeIdsImpl::VmCachedDeserializable);
+ }
+
+ /**
+ *@brief return the typeId byte of the instance being serialized.
+ * This is used by deserialization to determine what instance
+ * type to create and derserialize into.
+ */
+ virtual int8_t typeId() const { return m_typeId; }
+
+ /**
+ * Return the data serializable fixed ID size type for internal use.
+ * @since GFE 5.7
+ */
+ virtual int8_t DSFID() const { return GeodeTypeIdsImpl::FixedIDByte; }
+
+ int32_t classId() const { return 0; }
+};
+
+typedef std::shared_ptr<CachedDeserializableHelper>
+ CachedDeserializableHelperPtr;
+} // namespace client
+} // namespace geode
+} // namespace apache
+
+#endif // GEODE_CACHEDDESERIALIZABLEHELPER_H_
diff --git a/cppcache/src/ClientConnectionRequest.cpp b/cppcache/src/ClientConnectionRequest.cpp
index aca8788..adac50c 100644
--- a/cppcache/src/ClientConnectionRequest.cpp
+++ b/cppcache/src/ClientConnectionRequest.cpp
@@ -14,27 +14,27 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#include "ClientConnectionRequest.hpp"
#include <geode/DataOutput.hpp>
#include <geode/DataInput.hpp>
#include "GeodeTypeIdsImpl.hpp"
-
using namespace apache::geode::client;
-
void ClientConnectionRequest::toData(DataOutput& output) const {
+ // output.writeASCII( m_servergroup.c_str() );
+ // writeSetOfServerLocation( output );
+ // CacheableStringPtr abe = CacheableString::create( m_servergroup.c_str());
+ // output.writeObject(abe);// Changed
output.writeNativeString(m_servergroup.c_str());
writeSetOfServerLocation(output);
}
-
-void ClientConnectionRequest::fromData(DataInput& input) {}
-
+Serializable* ClientConnectionRequest::fromData(DataInput& input) {
+ return nullptr; // not needed as of now and my guess is it will never be
+ // needed.
+}
uint32_t ClientConnectionRequest::objectSize() const { return 0; }
-
int8_t ClientConnectionRequest::typeId() const {
return static_cast<int8_t>(GeodeTypeIdsImpl::ClientConnectionRequest);
}
-
void ClientConnectionRequest::writeSetOfServerLocation(
DataOutput& output) const {
output.writeInt(
diff --git a/cppcache/src/ClientConnectionRequest.hpp b/cppcache/src/ClientConnectionRequest.hpp
index a465175..5fe5dcc 100644
--- a/cppcache/src/ClientConnectionRequest.hpp
+++ b/cppcache/src/ClientConnectionRequest.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CLIENTCONNECTIONREQUEST_H_
+#define GEODE_CLIENTCONNECTIONREQUEST_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -14,44 +19,52 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#pragma once
-
-#ifndef GEODE_CLIENTCONNECTIONREQUEST_H_
-#define GEODE_CLIENTCONNECTIONREQUEST_H_
-
#include "ServerLocationRequest.hpp"
#include "TcrEndpoint.hpp"
#include <string>
#include <set>
#include "ServerLocation.hpp"
-
+#define _TEST_
namespace apache {
namespace geode {
namespace client {
-
class ClientConnectionRequest : public ServerLocationRequest {
public:
+#ifdef _TEST_
ClientConnectionRequest(const std::set<ServerLocation>& excludeServergroup,
std::string servergroup = "")
: ServerLocationRequest(),
m_servergroup(servergroup),
m_excludeServergroup_serverLocation(excludeServergroup) {}
+#else
+ ClientConnectionRequest(const std::set<TcrEndpoint*>& excludeServergroup,
+ std::string servergroup = "")
+ : m_excludeServergroup(excludeServergroup), m_servergroup(servergroup) {}
+#endif
virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
virtual uint32_t objectSize() const;
virtual int8_t typeId() const;
std::string getServerGroup() const { return m_servergroup; }
+#ifdef _TEST_
const std::set<ServerLocation>& getExcludedServerGroup() const {
return m_excludeServergroup_serverLocation;
}
+#else
+ const std::set<TcrEndpoint*>& getExcludedServerGroup() const {
+ return m_excludeServergroup;
+ }
+#endif
virtual ~ClientConnectionRequest() {} // Virtual destructor
private:
void writeSetOfServerLocation(DataOutput& output) const;
std::string m_servergroup;
+#ifdef _TEST_
const std::set<ServerLocation>& m_excludeServergroup_serverLocation;
+#else
+ const std::set<TcrEndpoint*>& m_excludeServergroup;
+#endif
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/ClientConnectionResponse.cpp b/cppcache/src/ClientConnectionResponse.cpp
index 79f6fdf..8e6dd95 100644
--- a/cppcache/src/ClientConnectionResponse.cpp
+++ b/cppcache/src/ClientConnectionResponse.cpp
@@ -17,24 +17,20 @@
#include "ClientConnectionResponse.hpp"
#include <geode/DataOutput.hpp>
#include <geode/DataInput.hpp>
-
using namespace apache::geode::client;
-
-void ClientConnectionResponse::fromData(DataInput& input) {
+ClientConnectionResponse* ClientConnectionResponse::fromData(DataInput& input) {
input.readBoolean(&m_serverFound);
if (m_serverFound) {
m_server.fromData(input);
}
+ return this;
}
-
int8_t ClientConnectionResponse::typeId() const {
return static_cast<int8_t>(GeodeTypeIdsImpl::ClientConnectionResponse);
}
-
uint32_t ClientConnectionResponse::objectSize() const {
return (m_server.objectSize());
}
-
ServerLocation ClientConnectionResponse::getServerLocation() const {
return m_server;
}
diff --git a/cppcache/src/ClientConnectionResponse.hpp b/cppcache/src/ClientConnectionResponse.hpp
index 1eead76..0dd11fb 100644
--- a/cppcache/src/ClientConnectionResponse.hpp
+++ b/cppcache/src/ClientConnectionResponse.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CLIENTCONNECTIONRESPONSE_H_
+#define GEODE_CLIENTCONNECTIONRESPONSE_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -14,24 +19,22 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#pragma once
-
-#ifndef GEODE_CLIENTCONNECTIONRESPONSE_H_
-#define GEODE_CLIENTCONNECTIONRESPONSE_H_
-
#include "ServerLocationResponse.hpp"
#include "ServerLocation.hpp"
#include <memory>
-
namespace apache {
namespace geode {
namespace client {
-
class ClientConnectionResponse : public ServerLocationResponse {
public:
- ClientConnectionResponse() : ServerLocationResponse(), m_serverFound(false) {}
- virtual void fromData(DataInput& input);
+ ClientConnectionResponse()
+ : ServerLocationResponse()
+ /* adongre
+ * CID 28927: Uninitialized scalar field (UNINIT_CTOR)
+ */
+ ,
+ m_serverFound(false) {}
+ virtual ClientConnectionResponse* fromData(DataInput& input);
virtual int8_t typeId() const;
virtual uint32_t objectSize() const;
virtual ServerLocation getServerLocation() const;
@@ -45,7 +48,6 @@ class ClientConnectionResponse : public ServerLocationResponse {
ServerLocation m_server;
};
typedef std::shared_ptr<ClientConnectionResponse> ClientConnectionResponsePtr;
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/ClientHealthStats.cpp b/cppcache/src/ClientHealthStats.cpp
index a7a960d..c9ffa2e 100644
--- a/cppcache/src/ClientHealthStats.cpp
+++ b/cppcache/src/ClientHealthStats.cpp
@@ -32,7 +32,7 @@ void ClientHealthStats::toData(DataOutput& output) const {
m_updateTime->toData(output);
}
-void ClientHealthStats::fromData(DataInput& input) {
+Serializable* ClientHealthStats::fromData(DataInput& input) {
input.readInt(&m_numGets);
input.readInt(&m_numPuts);
input.readInt(&m_numMisses);
@@ -41,6 +41,7 @@ void ClientHealthStats::fromData(DataInput& input) {
input.readInt(&m_processCpuTime);
input.readInt(&m_cpus);
m_updateTime->fromData(input);
+ return this;
}
Serializable* ClientHealthStats::createDeserializable() {
diff --git a/cppcache/src/ClientHealthStats.hpp b/cppcache/src/ClientHealthStats.hpp
index e842443..00954d2 100644
--- a/cppcache/src/ClientHealthStats.hpp
+++ b/cppcache/src/ClientHealthStats.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CLIENTHEALTHSTATS_H_
+#define GEODE_CLIENTHEALTHSTATS_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_CLIENTHEALTHSTATS_H_
-#define GEODE_CLIENTHEALTHSTATS_H_
-
#include <geode/geode_types.hpp>
#include <geode/Serializable.hpp>
#include <geode/Log.hpp>
@@ -39,7 +39,7 @@ class ClientHealthStats : public Serializable {
/**
*@brief deserialize this object
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/**
* @brief creation function for dates.
@@ -88,7 +88,6 @@ class ClientHealthStats : public Serializable {
int m_cpus;
CacheableDatePtr m_updateTime; // Last updateTime
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/ClientProxyMembershipID.cpp b/cppcache/src/ClientProxyMembershipID.cpp
index f14e8e3..cbf7d6b 100644
--- a/cppcache/src/ClientProxyMembershipID.cpp
+++ b/cppcache/src/ClientProxyMembershipID.cpp
@@ -214,7 +214,7 @@ void ClientProxyMembershipID::toData(DataOutput& output) const {
throw IllegalStateException("Member ID toData() not implemented.");
}
-void ClientProxyMembershipID::fromData(DataInput& input) {
+Serializable* ClientProxyMembershipID::fromData(DataInput& input) {
// deserialization for PR FX HA
uint8_t* hostAddr;
int32_t len, hostPort, dcport, vPID, durableClntTimeOut;
@@ -259,6 +259,8 @@ void ClientProxyMembershipID::fromData(DataInput& input) {
}
readAdditionalData(input);
+
+ return this;
}
Serializable* ClientProxyMembershipID::readEssentialData(DataInput& input) {
diff --git a/cppcache/src/ClientProxyMembershipID.hpp b/cppcache/src/ClientProxyMembershipID.hpp
index 02f4653..4e86423 100644
--- a/cppcache/src/ClientProxyMembershipID.hpp
+++ b/cppcache/src/ClientProxyMembershipID.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CLIENTPROXYMEMBERSHIPID_H_
+#define GEODE_CLIENTPROXYMEMBERSHIPID_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_CLIENTPROXYMEMBERSHIPID_H_
-#define GEODE_CLIENTPROXYMEMBERSHIPID_H_
-
#include <geode/geode_globals.hpp>
#include <geode/DataOutput.hpp>
#include "GeodeTypeIdsImpl.hpp"
@@ -30,7 +30,6 @@
namespace apache {
namespace geode {
namespace client {
-
class ClientProxyMembershipID;
typedef std::shared_ptr<ClientProxyMembershipID> ClientProxyMembershipIDPtr;
@@ -63,7 +62,7 @@ class ClientProxyMembershipID : public DSMemberForVersionStamp {
// Serializable interface:
void toData(DataOutput& output) const;
- void fromData(DataInput& input);
+ Serializable* fromData(DataInput& input);
int32_t classId() const { return 0; }
int8_t typeId() const { return GeodeTypeIdsImpl::InternalDistributedMember; }
uint32_t objectSize() const { return 0; }
@@ -129,7 +128,6 @@ class ClientProxyMembershipID : public DSMemberForVersionStamp {
void readAdditionalData(DataInput& input);
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/ClientReplacementRequest.cpp b/cppcache/src/ClientReplacementRequest.cpp
index e88fa5e..08e4358 100644
--- a/cppcache/src/ClientReplacementRequest.cpp
+++ b/cppcache/src/ClientReplacementRequest.cpp
@@ -19,16 +19,15 @@
#include <geode/DataOutput.hpp>
#include <geode/DataInput.hpp>
#include "GeodeTypeIdsImpl.hpp"
-
using namespace apache::geode::client;
-
void ClientReplacementRequest::toData(DataOutput& output) const {
ClientConnectionRequest::toData(output);
this->m_serverLocation.toData(output);
}
-
-void ClientReplacementRequest::fromData(DataInput& input) {}
-
+Serializable* ClientReplacementRequest::fromData(DataInput& input) {
+ return nullptr; // not needed as of now and my guess is it will never be
+ // needed.
+}
int8_t ClientReplacementRequest::typeId() const {
return static_cast<int8_t>(GeodeTypeIdsImpl::ClientReplacementRequest);
}
diff --git a/cppcache/src/ClientReplacementRequest.hpp b/cppcache/src/ClientReplacementRequest.hpp
index bdb74da..78567ff 100644
--- a/cppcache/src/ClientReplacementRequest.hpp
+++ b/cppcache/src/ClientReplacementRequest.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_CLIENTREPLACEMENTREQUEST_H_
+#define GEODE_CLIENTREPLACEMENTREQUEST_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -14,12 +19,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#pragma once
-
-#ifndef GEODE_CLIENTREPLACEMENTREQUEST_H_
-#define GEODE_CLIENTREPLACEMENTREQUEST_H_
-
#include "ServerLocationRequest.hpp"
#include "ClientConnectionRequest.hpp"
#include "TcrEndpoint.hpp"
@@ -30,7 +29,6 @@
namespace apache {
namespace geode {
namespace client {
-
class ClientReplacementRequest : public ClientConnectionRequest {
public:
ClientReplacementRequest(const std::string& serverName,
@@ -39,13 +37,12 @@ class ClientReplacementRequest : public ClientConnectionRequest {
: ClientConnectionRequest(excludeServergroup, servergroup),
m_serverLocation(ServerLocation(serverName)) {}
virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
virtual int8_t typeId() const;
virtual ~ClientReplacementRequest() {} // Virtual destructor
private:
const ServerLocation m_serverLocation;
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/DiskStoreId.hpp b/cppcache/src/DiskStoreId.hpp
index baf5ee4..886baec 100644
--- a/cppcache/src/DiskStoreId.hpp
+++ b/cppcache/src/DiskStoreId.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_DISKSTOREID_H_
+#define GEODE_DISKSTOREID_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_DISKSTOREID_H_
-#define GEODE_DISKSTOREID_H_
-
#include <geode/geode_globals.hpp>
#include <geode/DataInput.hpp>
#include "DSMemberForVersionStamp.hpp"
@@ -34,8 +34,8 @@ class DiskStoreId : public DSMemberForVersionStamp {
DiskStoreId() : m_hashCode(""), m_mostSig(0), m_leastSig(0) {}
/**
- * for internal testing
- */
+ * for internal testing
+ */
DiskStoreId(int64_t mostSig, int64_t leastSig)
: m_hashCode(""), m_mostSig(mostSig), m_leastSig(leastSig) {}
@@ -52,9 +52,10 @@ class DiskStoreId : public DSMemberForVersionStamp {
virtual void toData(DataOutput& output) const {
throw IllegalStateException("DiskStoreId::toData not implemented");
}
- virtual void fromData(DataInput& input) {
+ virtual Serializable* fromData(DataInput& input) {
input.readInt(&m_mostSig);
input.readInt(&m_leastSig);
+ return this;
}
virtual int32_t classId() const { return 0; }
@@ -100,7 +101,6 @@ class DiskStoreId : public DSMemberForVersionStamp {
int64_t m_mostSig;
int64_t m_leastSig;
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/EnumInfo.cpp b/cppcache/src/EnumInfo.cpp
index 21e4156..a19400a 100644
--- a/cppcache/src/EnumInfo.cpp
+++ b/cppcache/src/EnumInfo.cpp
@@ -69,10 +69,11 @@ void EnumInfo::toData(apache::geode::client::DataOutput &output) const {
output.writeInt(m_ordinal);
}
-void EnumInfo::fromData(apache::geode::client::DataInput &input) {
+Serializable *EnumInfo::fromData(apache::geode::client::DataInput &input) {
input.readObject(m_enumClassName);
input.readObject(m_enumName);
input.readInt(&m_ordinal);
+ return this;
}
int8_t EnumInfo::DSFID() const {
diff --git a/cppcache/src/EnumInfo.hpp b/cppcache/src/EnumInfo.hpp
index f993bb1..cba0677 100644
--- a/cppcache/src/EnumInfo.hpp
+++ b/cppcache/src/EnumInfo.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_ENUMINFO_H_
+#define GEODE_ENUMINFO_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_ENUMINFO_H_
-#define GEODE_ENUMINFO_H_
-
#include <geode/GeodeTypeIds.hpp>
#include <geode/CacheableString.hpp>
#include <geode/CacheableKey.hpp>
@@ -40,7 +40,7 @@ class CPPCACHE_EXPORT EnumInfo : public CacheableKey {
EnumInfo(const char* enumClassName, const char* enumName, int32_t m_ordinal);
static Serializable* createDeserializable() { return new EnumInfo(); }
virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
virtual uint32_t objectSize() const {
uint32_t size = sizeof(EnumInfo);
size += sizeof(int32_t);
@@ -62,7 +62,6 @@ class CPPCACHE_EXPORT EnumInfo : public CacheableKey {
int32_t getEnumOrdinal() const { return m_ordinal; }
};
typedef std::shared_ptr<EnumInfo> EnumInfoPtr;
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/EventId.cpp b/cppcache/src/EventId.cpp
index d17983b..6f944a6 100644
--- a/cppcache/src/EventId.cpp
+++ b/cppcache/src/EventId.cpp
@@ -71,7 +71,7 @@ void EventId::toData(DataOutput& output) const {
output.write(m_breadcrumbCounter);
}
-void EventId::fromData(DataInput& input) {
+Serializable* EventId::fromData(DataInput& input) {
// TODO: statics being assigned; not thread-safe??
input.readArrayLen(&m_eidMemLen);
input.readBytesOnly(reinterpret_cast<int8_t*>(m_eidMem), m_eidMemLen);
@@ -84,6 +84,7 @@ void EventId::fromData(DataInput& input) {
m_eidSeq = getEventIdData(input, numberCode);
input.readInt(&m_bucketId);
input.read(&m_breadcrumbCounter);
+ return this;
}
const char* EventId::getMemId() const { return m_eidMem; }
diff --git a/cppcache/src/EventId.hpp b/cppcache/src/EventId.hpp
index 1f995a9..cae6bdd 100644
--- a/cppcache/src/EventId.hpp
+++ b/cppcache/src/EventId.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_EVENTID_H_
+#define GEODE_EVENTID_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_EVENTID_H_
-#define GEODE_EVENTID_H_
-
#include <geode/geode_globals.hpp>
#include <geode/geode_types.hpp>
#include <geode/Cacheable.hpp>
@@ -29,7 +29,7 @@
#include <string>
/** @file
- */
+*/
namespace apache {
namespace geode {
@@ -65,7 +65,7 @@ class CPPCACHE_EXPORT EventId : public Cacheable {
/**
*@brief deserialize this object
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
virtual uint32_t objectSize() const {
uint32_t objectSize = 0;
@@ -149,7 +149,6 @@ class CPPCACHE_EXPORT EventId : public Cacheable {
void operator=(const EventId& other);
EventId(const EventId& other);
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/FixedPartitionAttributesImpl.hpp b/cppcache/src/FixedPartitionAttributesImpl.hpp
index a14bc87..7d2671e 100644
--- a/cppcache/src/FixedPartitionAttributesImpl.hpp
+++ b/cppcache/src/FixedPartitionAttributesImpl.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_FIXEDPARTITIONATTRIBUTESIMPL_H_
+#define GEODE_FIXEDPARTITIONATTRIBUTESIMPL_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_FIXEDPARTITIONATTRIBUTESIMPL_H_
-#define GEODE_FIXEDPARTITIONATTRIBUTESIMPL_H_
-
#include <geode/Serializable.hpp>
#include <geode/DataInput.hpp>
#include <geode/DataOutput.hpp>
@@ -29,7 +29,6 @@
namespace apache {
namespace geode {
namespace client {
-
_GF_PTR_DEF_(FixedPartitionAttributesImpl, FixedPartitionAttributesImplPtr)
class FixedPartitionAttributesImpl : public Serializable {
@@ -67,11 +66,12 @@ class FixedPartitionAttributesImpl : public Serializable {
output.writeInt(m_startingBucketId);
}
- void fromData(DataInput& input) {
+ FixedPartitionAttributesImpl* fromData(DataInput& input) {
input.readNativeString(m_partitionName);
input.readBoolean(&m_isPrimary);
input.readInt((int32_t*)&m_numBuckets);
input.readInt((int32_t*)&m_startingBucketId);
+ return this;
}
uint32_t objectSize() const {
@@ -121,7 +121,6 @@ class FixedPartitionAttributesImpl : public Serializable {
return getStartingBucketID() <= bucketId && bucketId <= getLastBucketID();
}
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/GetAllServersRequest.hpp b/cppcache/src/GatewayEventCallbackArgument.hpp
similarity index 51%
copy from cppcache/src/GetAllServersRequest.hpp
copy to cppcache/src/GatewayEventCallbackArgument.hpp
index 77e4e02..8c465b5 100644
--- a/cppcache/src/GetAllServersRequest.hpp
+++ b/cppcache/src/GatewayEventCallbackArgument.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_GATEWAYEVENTCALLBACKARGUMENT_H_
+#define GEODE_GATEWAYEVENTCALLBACKARGUMENT_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,44 +20,53 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_GETALLSERVERSREQUEST_H_
-#define GEODE_GETALLSERVERSREQUEST_H_
-
#include <geode/Serializable.hpp>
-#include <geode/DataInput.hpp>
-#include <geode/DataOutput.hpp>
-#include <geode/CacheableString.hpp>
#include "GeodeTypeIdsImpl.hpp"
-#include <string>
namespace apache {
namespace geode {
namespace client {
+class GatewayEventCallbackArgument : public Serializable {
+ SerializablePtr m_callback;
-class GetAllServersRequest : public Serializable {
- CacheableStringPtr m_serverGroup;
-
- public:
- GetAllServersRequest(const std::string& serverGroup) : Serializable() {
- m_serverGroup = CacheableString::create(serverGroup.c_str());
- }
- virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
virtual int32_t classId() const { return 0; }
+
virtual int8_t typeId() const {
- return GeodeTypeIdsImpl::GetAllServersRequest;
+ return static_cast<int8_t>(GeodeTypeIdsImpl::GatewayEventCallbackArgument);
}
+
virtual int8_t DSFID() const {
- return static_cast<int8_t>(GeodeTypeIdsImpl::FixedIDByte);
+ return static_cast<int32_t>(GeodeTypeIdsImpl::FixedIDByte);
+ }
+
+ virtual uint32_t objectSize() const { return 0; }
+
+ virtual void toData(DataOutput& output) const {
+ throw IllegalStateException(
+ "GatewayEventCallbackArgument::toData not implemented");
}
- virtual uint32_t objectSize() const { return m_serverGroup->length(); }
- virtual ~GetAllServersRequest() {}
-};
+ virtual Serializable* fromData(DataInput& input) {
+ input.readObject(m_callback);
+ CacheableStringPtr ignored;
+ // input.readObject(ignored);// Changed
+ input.readNativeString(ignored);
+ int32_t items;
+ input.readInt(&items);
+ for (int32_t item = 0; item < items; item++) {
+ // input.readObject(ignored);// Changed
+ input.readNativeString(ignored);
+ }
+ return m_callback.get();
+ }
+
+ public:
+ inline static Serializable* createDeserializable() {
+ return new GatewayEventCallbackArgument();
+ }
+};
} // namespace client
} // namespace geode
} // namespace apache
-#endif // GEODE_GETALLSERVERSREQUEST_H_
+#endif // GEODE_GATEWAYEVENTCALLBACKARGUMENT_H_
diff --git a/cppcache/src/GatewaySenderEventCallbackArgument.hpp b/cppcache/src/GatewaySenderEventCallbackArgument.hpp
new file mode 100644
index 0000000..d6a87d8
--- /dev/null
+++ b/cppcache/src/GatewaySenderEventCallbackArgument.hpp
@@ -0,0 +1,76 @@
+#pragma once
+
+#ifndef GEODE_GATEWAYSENDEREVENTCALLBACKARGUMENT_H_
+#define GEODE_GATEWAYSENDEREVENTCALLBACKARGUMENT_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/Serializable.hpp>
+#include "GeodeTypeIdsImpl.hpp"
+
+namespace apache {
+namespace geode {
+namespace client {
+class GatewaySenderEventCallbackArgument : public Serializable {
+ SerializablePtr m_callback;
+
+ virtual int32_t classId() const {
+ return static_cast<int16_t>(
+ GeodeTypeIdsImpl::GatewaySenderEventCallbackArgument);
+ ;
+ }
+
+ virtual int8_t typeId() const {
+ throw IllegalStateException(
+ "GatewaySenderEventCallbackArgument::typeId not implemented use "
+ "classid");
+ }
+
+ virtual int8_t DSFID() const {
+ return static_cast<int32_t>(GeodeTypeIdsImpl::FixedIDShort);
+ }
+
+ virtual uint32_t objectSize() const { return 0; }
+
+ virtual void toData(DataOutput& output) const {
+ throw IllegalStateException(
+ "GatewaySenderEventCallbackArgument::toData not implemented");
+ }
+
+ virtual Serializable* fromData(DataInput& input) {
+ input.readObject(m_callback);
+ int ignoreInt;
+ input.readInt(&ignoreInt);
+ int32_t items;
+ input.readInt(&items);
+ for (int32_t item = 0; item < items; item++) {
+ input.readInt(&ignoreInt);
+ }
+ return m_callback.get();
+ }
+
+ public:
+ inline static Serializable* createDeserializable() {
+ return new GatewaySenderEventCallbackArgument();
+ }
+};
+} // namespace client
+} // namespace geode
+} // namespace apache
+
+#endif // GEODE_GATEWAYSENDEREVENTCALLBACKARGUMENT_H_
diff --git a/cppcache/src/GetAllServersRequest.cpp b/cppcache/src/GetAllServersRequest.cpp
index b53edef..a849990 100644
--- a/cppcache/src/GetAllServersRequest.cpp
+++ b/cppcache/src/GetAllServersRequest.cpp
@@ -23,6 +23,7 @@ void GetAllServersRequest::toData(DataOutput& output) const {
output.writeObject(m_serverGroup);
}
-void GetAllServersRequest::fromData(DataInput& input) {
+Serializable* GetAllServersRequest::fromData(DataInput& input) {
input.readObject(m_serverGroup);
+ return this;
}
diff --git a/cppcache/src/GetAllServersRequest.hpp b/cppcache/src/GetAllServersRequest.hpp
index 77e4e02..f1d06cf 100644
--- a/cppcache/src/GetAllServersRequest.hpp
+++ b/cppcache/src/GetAllServersRequest.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_GETALLSERVERSREQUEST_H_
+#define GEODE_GETALLSERVERSREQUEST_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_GETALLSERVERSREQUEST_H_
-#define GEODE_GETALLSERVERSREQUEST_H_
-
#include <geode/Serializable.hpp>
#include <geode/DataInput.hpp>
#include <geode/DataOutput.hpp>
@@ -30,7 +30,6 @@
namespace apache {
namespace geode {
namespace client {
-
class GetAllServersRequest : public Serializable {
CacheableStringPtr m_serverGroup;
@@ -39,7 +38,7 @@ class GetAllServersRequest : public Serializable {
m_serverGroup = CacheableString::create(serverGroup.c_str());
}
virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
virtual int32_t classId() const { return 0; }
virtual int8_t typeId() const {
return GeodeTypeIdsImpl::GetAllServersRequest;
@@ -50,7 +49,6 @@ class GetAllServersRequest : public Serializable {
virtual uint32_t objectSize() const { return m_serverGroup->length(); }
virtual ~GetAllServersRequest() {}
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/GetAllServersResponse.cpp b/cppcache/src/GetAllServersResponse.cpp
index 4ee8ccd..86aa8d7 100644
--- a/cppcache/src/GetAllServersResponse.cpp
+++ b/cppcache/src/GetAllServersResponse.cpp
@@ -25,7 +25,7 @@ void GetAllServersResponse::toData(DataOutput& output) const {
output.writeObject(&m_servers.at(i));
}
}
-void GetAllServersResponse::fromData(DataInput& input) {
+Serializable* GetAllServersResponse::fromData(DataInput& input) {
int length = 0;
input.readInt(&length);
@@ -35,4 +35,5 @@ void GetAllServersResponse::fromData(DataInput& input) {
sLoc.fromData(input);
m_servers.push_back(sLoc);
}
+ return this;
}
diff --git a/cppcache/src/GetAllServersResponse.hpp b/cppcache/src/GetAllServersResponse.hpp
index 707dbfb..b467eff 100644
--- a/cppcache/src/GetAllServersResponse.hpp
+++ b/cppcache/src/GetAllServersResponse.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_GETALLSERVERSRESPONSE_H_
+#define GEODE_GETALLSERVERSRESPONSE_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_GETALLSERVERSRESPONSE_H_
-#define GEODE_GETALLSERVERSRESPONSE_H_
-
#include <geode/Serializable.hpp>
#include "ServerLocation.hpp"
#include <geode/DataInput.hpp>
@@ -29,7 +29,6 @@
namespace apache {
namespace geode {
namespace client {
-
class GetAllServersResponse : public Serializable {
std::vector<ServerLocation> m_servers;
@@ -37,7 +36,7 @@ class GetAllServersResponse : public Serializable {
static Serializable* create() { return new GetAllServersResponse(); }
GetAllServersResponse() : Serializable() {}
virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
virtual int32_t classId() const { return 0; }
virtual int8_t typeId() const {
return GeodeTypeIdsImpl::GetAllServersResponse;
@@ -52,7 +51,6 @@ class GetAllServersResponse : public Serializable {
virtual ~GetAllServersResponse() {}
};
typedef std::shared_ptr<GetAllServersResponse> GetAllServersResponsePtr;
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/LocatorListRequest.cpp b/cppcache/src/LocatorListRequest.cpp
index 753f074..f745b71 100644
--- a/cppcache/src/LocatorListRequest.cpp
+++ b/cppcache/src/LocatorListRequest.cpp
@@ -19,19 +19,17 @@
#include <geode/DataOutput.hpp>
#include "GeodeTypeIdsImpl.hpp"
#include <geode/CacheableString.hpp>
-
using namespace apache::geode::client;
-
LocatorListRequest::LocatorListRequest(const std::string& servergroup)
: m_servergroup(servergroup) {}
void LocatorListRequest::toData(DataOutput& output) const {
+ // CacheableStringPtr pxr = CacheableString::create( m_servergroup.c_str());
+ // output.writeObject(pxr);// changed
output.writeNativeString(m_servergroup.c_str());
}
-void LocatorListRequest::fromData(DataInput& input) {}
-
+Serializable* LocatorListRequest::fromData(DataInput& input) { return nullptr; }
int8_t LocatorListRequest::typeId() const {
return static_cast<int8_t>(GeodeTypeIdsImpl::LocatorListRequest);
}
-
uint32_t LocatorListRequest::objectSize() const { return 0; }
diff --git a/cppcache/src/LocatorListRequest.hpp b/cppcache/src/LocatorListRequest.hpp
index 0db77cd..ea444d5 100644
--- a/cppcache/src/LocatorListRequest.hpp
+++ b/cppcache/src/LocatorListRequest.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_LOCATORLISTREQUEST_H_
+#define GEODE_LOCATORLISTREQUEST_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -14,20 +19,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#pragma once
-
-#ifndef GEODE_LOCATORLISTREQUEST_H_
-#define GEODE_LOCATORLISTREQUEST_H_
-
#include <string>
#include "ServerLocationRequest.hpp"
#include "GeodeTypeIdsImpl.hpp"
-
namespace apache {
namespace geode {
namespace client {
-
class DataOutput;
class DataInput;
class Serializable;
@@ -38,11 +35,10 @@ class LocatorListRequest : public ServerLocationRequest {
public:
LocatorListRequest(const std::string& servergroup = "");
virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
virtual int8_t typeId() const;
virtual uint32_t objectSize() const;
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/LocatorListResponse.cpp b/cppcache/src/LocatorListResponse.cpp
index adeb97c..e5260dd 100644
--- a/cppcache/src/LocatorListResponse.cpp
+++ b/cppcache/src/LocatorListResponse.cpp
@@ -14,24 +14,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#include "LocatorListResponse.hpp"
#include <geode/DataInput.hpp>
#include <vector>
-
using namespace apache::geode::client;
-
-void LocatorListResponse::fromData(DataInput& input) {
+LocatorListResponse* LocatorListResponse::fromData(DataInput& input) {
readList(input);
input.readBoolean(&m_isBalanced);
+ return this;
}
-
int8_t LocatorListResponse::typeId() const {
return static_cast<int8_t>(GeodeTypeIdsImpl::LocatorListResponse);
}
-
uint32_t LocatorListResponse::objectSize() const { return 0; }
-
void LocatorListResponse::readList(DataInput& input) {
uint32_t size = 0;
input.readInt(&size);
@@ -41,11 +36,9 @@ void LocatorListResponse::readList(DataInput& input) {
m_locators.push_back(temp);
}
}
-
const std::vector<ServerLocation>& LocatorListResponse::getLocators() const {
return m_locators;
}
-
bool LocatorListResponse::isBalanced() const { return m_isBalanced; }
Serializable* LocatorListResponse::create() {
diff --git a/cppcache/src/LocatorListResponse.hpp b/cppcache/src/LocatorListResponse.hpp
index eeab3c6..8b7b6fa 100644
--- a/cppcache/src/LocatorListResponse.hpp
+++ b/cppcache/src/LocatorListResponse.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_LOCATORLISTRESPONSE_H_
+#define GEODE_LOCATORLISTRESPONSE_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -14,21 +19,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#pragma once
-
-#ifndef GEODE_LOCATORLISTRESPONSE_H_
-#define GEODE_LOCATORLISTRESPONSE_H_
-
#include <vector>
#include "GeodeTypeIdsImpl.hpp"
#include "ServerLocationResponse.hpp"
#include "ServerLocation.hpp"
-
namespace apache {
namespace geode {
namespace client {
-
class DataInput;
class LocatorListResponse : public ServerLocationResponse {
private:
@@ -42,7 +39,7 @@ class LocatorListResponse : public ServerLocationResponse {
* CID 28938: Uninitialized scalar field (UNINIT_CTOR) *
*/
m_isBalanced(false) {} // Default constru needed for de-serialization
- virtual void fromData(DataInput& input);
+ virtual LocatorListResponse* fromData(DataInput& input);
virtual int8_t typeId() const;
virtual uint32_t objectSize() const;
const std::vector<ServerLocation>& getLocators() const;
@@ -51,7 +48,6 @@ class LocatorListResponse : public ServerLocationResponse {
static Serializable* create();
};
typedef std::shared_ptr<LocatorListResponse> LocatorListResponsePtr;
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/CacheableUndefined.cpp b/cppcache/src/PdxEnumInstantiator.cpp
similarity index 54%
copy from cppcache/src/CacheableUndefined.cpp
copy to cppcache/src/PdxEnumInstantiator.cpp
index d7fd1ee..8584186 100644
--- a/cppcache/src/CacheableUndefined.cpp
+++ b/cppcache/src/PdxEnumInstantiator.cpp
@@ -14,31 +14,41 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <geode/CacheableUndefined.hpp>
-#include <geode/DataOutput.hpp>
+/*
+* PdxEnumInstantiator.cpp
+*/
+
+#include "PdxEnumInstantiator.hpp"
+#include "GeodeTypeIdsImpl.hpp"
+#include <geode/CacheableString.hpp>
#include <geode/DataInput.hpp>
-#include <geode/GeodeTypeIds.hpp>
-#include <GeodeTypeIdsImpl.hpp>
namespace apache {
namespace geode {
namespace client {
-void CacheableUndefined::toData(DataOutput& output) const {}
+PdxEnumInstantiator::PdxEnumInstantiator() {}
-void CacheableUndefined::fromData(DataInput& input) {}
+PdxEnumInstantiator::~PdxEnumInstantiator() {}
-int32_t CacheableUndefined::classId() const { return 0; }
+int8_t PdxEnumInstantiator::typeId() const {
+ return static_cast<int8_t>(GeodeTypeIds::CacheableEnum);
+}
-int8_t CacheableUndefined::typeId() const {
- return GeodeTypeIds::CacheableUndefined;
+void PdxEnumInstantiator::toData(DataOutput& output) const {
+ throw UnsupportedOperationException(
+ "operation PdxEnumInstantiator::toData() is not supported ");
}
-int8_t CacheableUndefined::DSFID() const {
- return GeodeTypeIdsImpl::FixedIDByte;
+Serializable* PdxEnumInstantiator::fromData(DataInput& input) {
+ m_enumObject = CacheableEnum::create(" ", " ", 0);
+ m_enumObject->fromData(input);
+ return m_enumObject.get();
}
-uint32_t CacheableUndefined::objectSize() const { return 0; }
+CacheableStringPtr PdxEnumInstantiator::toString() const {
+ return CacheableString::create("PdxEnumInstantiator");
+}
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/LocatorListRequest.hpp b/cppcache/src/PdxEnumInstantiator.hpp
similarity index 65%
copy from cppcache/src/LocatorListRequest.hpp
copy to cppcache/src/PdxEnumInstantiator.hpp
index 0db77cd..1d60c9b 100644
--- a/cppcache/src/LocatorListRequest.hpp
+++ b/cppcache/src/PdxEnumInstantiator.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_PDXENUMINSTANTIATOR_H_
+#define GEODE_PDXENUMINSTANTIATOR_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,36 +20,38 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_LOCATORLISTREQUEST_H_
-#define GEODE_LOCATORLISTREQUEST_H_
-
-#include <string>
-#include "ServerLocationRequest.hpp"
-#include "GeodeTypeIdsImpl.hpp"
+#include <geode/Serializable.hpp>
+#include <geode/CacheableEnum.hpp>
namespace apache {
namespace geode {
namespace client {
-class DataOutput;
-class DataInput;
-class Serializable;
-class LocatorListRequest : public ServerLocationRequest {
+class PdxEnumInstantiator : public Serializable {
private:
- std::string m_servergroup;
+ CacheableEnumPtr m_enumObject;
public:
- LocatorListRequest(const std::string& servergroup = "");
- virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
+ PdxEnumInstantiator();
+
+ virtual ~PdxEnumInstantiator();
+
+ static Serializable* createDeserializable() {
+ return new PdxEnumInstantiator();
+ }
+
virtual int8_t typeId() const;
- virtual uint32_t objectSize() const;
-};
+ virtual void toData(DataOutput& output) const;
+
+ virtual Serializable* fromData(DataInput& input);
+
+ virtual int32_t classId() const { return 0; }
+
+ CacheableStringPtr toString() const;
+};
} // namespace client
} // namespace geode
} // namespace apache
-#endif // GEODE_LOCATORLISTREQUEST_H_
+#endif // GEODE_PDXENUMINSTANTIATOR_H_
diff --git a/cppcache/src/PdxFieldType.cpp b/cppcache/src/PdxFieldType.cpp
index e8a074a..09225d4 100644
--- a/cppcache/src/PdxFieldType.cpp
+++ b/cppcache/src/PdxFieldType.cpp
@@ -78,7 +78,7 @@ void PdxFieldType::toData(DataOutput& output) const {
output.writeBoolean(m_isIdentityField);
}
-void PdxFieldType::fromData(DataInput& input) {
+Serializable* PdxFieldType::fromData(DataInput& input) {
int8_t typeId;
input.read(&typeId);
char* fname = nullptr;
@@ -98,6 +98,7 @@ void PdxFieldType::fromData(DataInput& input) {
} else {
m_isVariableLengthType = true;
}
+ return this;
}
bool PdxFieldType::equals(PdxFieldTypePtr otherObj) {
diff --git a/cppcache/src/PdxFieldType.hpp b/cppcache/src/PdxFieldType.hpp
index 3c52c64..87ec5ed 100644
--- a/cppcache/src/PdxFieldType.hpp
+++ b/cppcache/src/PdxFieldType.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_PDXFIELDTYPE_H_
+#define GEODE_PDXFIELDTYPE_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_PDXFIELDTYPE_H_
-#define GEODE_PDXFIELDTYPE_H_
-
#include <geode/geode_globals.hpp>
#include <geode/Serializable.hpp>
#include <geode/CacheableString.hpp>
@@ -30,10 +30,8 @@
namespace apache {
namespace geode {
namespace client {
-
class PdxFieldType;
typedef std::shared_ptr<PdxFieldType> PdxFieldTypePtr;
-
class CPPCACHE_EXPORT PdxFieldType : public Serializable {
private:
std::string m_fieldName;
@@ -85,7 +83,7 @@ class CPPCACHE_EXPORT PdxFieldType : public Serializable {
virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
virtual int32_t classId() const { return m_typeId; }
@@ -106,7 +104,6 @@ class CPPCACHE_EXPORT PdxFieldType : public Serializable {
int32_t getRelativeOffset() const { return m_relativeOffset; }
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/PdxInstanceImpl.hpp b/cppcache/src/PdxInstanceImpl.hpp
index 0ca4ef0..795eada 100644
--- a/cppcache/src/PdxInstanceImpl.hpp
+++ b/cppcache/src/PdxInstanceImpl.hpp
@@ -959,7 +959,7 @@ class CPPCACHE_EXPORT PdxInstanceImpl : public WritablePdxInstance {
* @brief deserialize this object, typical implementation should return
* the 'this' pointer. This is an internal method.
*/
- virtual void fromData(DataInput& input) {
+ virtual Serializable* fromData(DataInput& input) {
return PdxInstance::fromData(input);
}
diff --git a/cppcache/src/PdxSerializable.cpp b/cppcache/src/PdxInstantiator.cpp
similarity index 54%
copy from cppcache/src/PdxSerializable.cpp
copy to cppcache/src/PdxInstantiator.cpp
index 0efba08..e4a5958 100644
--- a/cppcache/src/PdxSerializable.cpp
+++ b/cppcache/src/PdxInstantiator.cpp
@@ -15,51 +15,43 @@
* limitations under the License.
*/
/*
- * PdxSerializable.cpp
+ * PdxInstantiator.cpp
*
- * Created on: Sep 29, 2011
+ * Created on: Dec 28, 2011
* Author: npatel
*/
-#include <geode/PdxSerializable.hpp>
-#include <GeodeTypeIdsImpl.hpp>
+#include "PdxInstantiator.hpp"
+#include "GeodeTypeIdsImpl.hpp"
#include <geode/CacheableString.hpp>
-#include <PdxHelper.hpp>
-#include <geode/CacheableKeys.hpp>
+#include <geode/DataInput.hpp>
+#include "PdxHelper.hpp"
+#include <geode/PdxSerializable.hpp>
namespace apache {
namespace geode {
namespace client {
-PdxSerializable::PdxSerializable() {}
-PdxSerializable::~PdxSerializable() {}
+PdxInstantiator::PdxInstantiator() {}
-int8_t PdxSerializable::typeId() const {
- return static_cast<int8_t>(GeodeTypeIdsImpl::PDX);
-}
+PdxInstantiator::~PdxInstantiator() {}
-void PdxSerializable::toData(DataOutput& output) const {
- LOGDEBUG("SerRegistry.cpp:serializePdx:86: PDX Object Type = %s",
- typeid(*this).name());
- PdxHelper::serializePdx(output, *this);
+int8_t PdxInstantiator::typeId() const {
+ return static_cast<int8_t>(GeodeTypeIdsImpl::PDX);
}
-void PdxSerializable::fromData(DataInput& input) {
+void PdxInstantiator::toData(DataOutput& output) const {
throw UnsupportedOperationException(
- "operation PdxSerializable::fromData() is not supported ");
-}
-
-CacheableStringPtr PdxSerializable::toString() const {
- return CacheableString::create("PdxSerializable");
+ "operation PdxInstantiator::toData() is not supported ");
}
-bool PdxSerializable::operator==(const CacheableKey& other) const {
- return (this == &other);
+Serializable* PdxInstantiator::fromData(DataInput& input) {
+ m_userObject = PdxHelper::deserializePdx(input, false);
+ return m_userObject.get();
}
-int32_t PdxSerializable::hashcode() const {
- uint64_t hash = static_cast<uint64_t>((intptr_t)this);
- return apache::geode::client::serializer::hashcode(hash);
+CacheableStringPtr PdxInstantiator::toString() const {
+ return CacheableString::create("PdxInstantiator");
}
} // namespace client
} // namespace geode
diff --git a/cppcache/src/LocatorListRequest.hpp b/cppcache/src/PdxInstantiator.hpp
similarity index 67%
copy from cppcache/src/LocatorListRequest.hpp
copy to cppcache/src/PdxInstantiator.hpp
index 0db77cd..3c01088 100644
--- a/cppcache/src/LocatorListRequest.hpp
+++ b/cppcache/src/PdxInstantiator.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_PDXINSTANTIATOR_H_
+#define GEODE_PDXINSTANTIATOR_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,36 +20,35 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_LOCATORLISTREQUEST_H_
-#define GEODE_LOCATORLISTREQUEST_H_
-
-#include <string>
-#include "ServerLocationRequest.hpp"
-#include "GeodeTypeIdsImpl.hpp"
+#include <geode/Serializable.hpp>
namespace apache {
namespace geode {
namespace client {
-class DataOutput;
-class DataInput;
-class Serializable;
-class LocatorListRequest : public ServerLocationRequest {
+class PdxInstantiator : public Serializable {
private:
- std::string m_servergroup;
+ PdxSerializablePtr m_userObject;
public:
- LocatorListRequest(const std::string& servergroup = "");
- virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
+ PdxInstantiator();
+
+ virtual ~PdxInstantiator();
+
+ static Serializable* createDeserializable() { return new PdxInstantiator(); }
+
virtual int8_t typeId() const;
- virtual uint32_t objectSize() const;
-};
+ virtual void toData(DataOutput& output) const;
+
+ virtual Serializable* fromData(DataInput& input);
+
+ virtual int32_t classId() const { return 0x10; }
+
+ CacheableStringPtr toString() const;
+};
} // namespace client
} // namespace geode
} // namespace apache
-#endif // GEODE_LOCATORLISTREQUEST_H_
+#endif // GEODE_PDXINSTANTIATOR_H_
diff --git a/cppcache/src/PdxSerializable.cpp b/cppcache/src/PdxSerializable.cpp
index 0efba08..fcb833e 100644
--- a/cppcache/src/PdxSerializable.cpp
+++ b/cppcache/src/PdxSerializable.cpp
@@ -44,7 +44,7 @@ void PdxSerializable::toData(DataOutput& output) const {
PdxHelper::serializePdx(output, *this);
}
-void PdxSerializable::fromData(DataInput& input) {
+Serializable* PdxSerializable::fromData(DataInput& input) {
throw UnsupportedOperationException(
"operation PdxSerializable::fromData() is not supported ");
}
diff --git a/cppcache/src/PdxType.cpp b/cppcache/src/PdxType.cpp
index 4d66e66..50bfa38 100644
--- a/cppcache/src/PdxType.cpp
+++ b/cppcache/src/PdxType.cpp
@@ -43,10 +43,9 @@ PdxType::~PdxType() {
GF_SAFE_DELETE_ARRAY(m_className);
}
-// PdxType::PdxType() : PdxType(nullptr, false) {}
+//PdxType::PdxType() : PdxType(nullptr, false) {}
-PdxType::PdxType(PdxTypeRegistryPtr pdxTypeRegistryPtr,
- const char* pdxDomainClassName, bool isLocal)
+PdxType::PdxType(PdxTypeRegistryPtr pdxTypeRegistryPtr, const char* pdxDomainClassName, bool isLocal)
: Serializable(),
m_className(Utils::copyString(pdxDomainClassName)),
m_isLocal(isLocal),
@@ -89,7 +88,7 @@ void PdxType::toData(DataOutput& output) const {
}
}
-void PdxType::fromData(DataInput& input) {
+Serializable* PdxType::fromData(DataInput& input) {
int8_t dsByte;
input.read(&dsByte);
@@ -132,6 +131,7 @@ void PdxType::fromData(DataInput& input) {
}
InitializeType();
+ return this;
}
void PdxType::addFixedLengthTypeField(const char* fieldName,
@@ -447,8 +447,7 @@ PdxTypePtr PdxType::isContains(PdxTypePtr first, PdxTypePtr second) {
}
PdxTypePtr PdxType::clone() {
- auto clone =
- std::make_shared<PdxType>(m_pdxTypeRegistryPtr, m_className, false);
+ auto clone = std::make_shared<PdxType>(m_pdxTypeRegistryPtr, m_className, false);
clone->m_geodeTypeId = 0;
clone->m_numberOfVarLenFields = m_numberOfVarLenFields;
@@ -599,6 +598,7 @@ bool PdxType::operator<(const PdxType& other) const {
return ACE_OS::strcmp(this->m_className, other.m_className) < 0;
}
+
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/PdxType.hpp b/cppcache/src/PdxType.hpp
index 99e056f..5b094b4 100644
--- a/cppcache/src/PdxType.hpp
+++ b/cppcache/src/PdxType.hpp
@@ -41,7 +41,7 @@ typedef std::map<std::string, PdxFieldTypePtr> NameVsPdxType;
class PdxType;
typedef std::shared_ptr<PdxType> PdxTypePtr;
class PdxTypeRegistry;
-typedef std::shared_ptr<PdxTypeRegistry> PdxTypeRegistryPtr;
+typedef std::shared_ptr <PdxTypeRegistry> PdxTypeRegistryPtr;
class PdxType : public Serializable,
private NonCopyable,
@@ -100,21 +100,18 @@ class PdxType : public Serializable,
}
public:
- PdxType(PdxTypeRegistryPtr pdxTypeRegistryPtr, const char* pdxDomainClassName,
- bool isLocal);
+
+ PdxType(PdxTypeRegistryPtr pdxTypeRegistryPtr, const char* pdxDomainClassName, bool isLocal);
virtual ~PdxType();
virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
virtual int32_t classId() const { return GeodeTypeIds::PdxType; }
- static Serializable* CreateDeserializable(
- PdxTypeRegistryPtr pdxTypeRegistryPtr) {
- return new PdxType(pdxTypeRegistryPtr, nullptr, false);
- }
+ static Serializable* CreateDeserializable(PdxTypeRegistryPtr pdxTypeRegistryPtr) { return new PdxType(pdxTypeRegistryPtr, nullptr, false); }
virtual uint32_t objectSize() const {
uint32_t size = sizeof(PdxType);
diff --git a/cppcache/src/PdxWrapper.cpp b/cppcache/src/PdxWrapper.cpp
index a27b28b..1c73947 100644
--- a/cppcache/src/PdxWrapper.cpp
+++ b/cppcache/src/PdxWrapper.cpp
@@ -144,7 +144,7 @@ void PdxWrapper::toData(DataOutput &output) const {
PdxHelper::serializePdx(output, *this);
}
-void PdxWrapper::fromData(DataInput &input) {
+Serializable *PdxWrapper::fromData(DataInput &input) {
LOGERROR("PdxWrapper fromData should not have been called");
throw IllegalStateException(
"PdxWrapper fromData should not have been called");
diff --git a/cppcache/src/Properties.cpp b/cppcache/src/Properties.cpp
index 0e2d178..8bf09d6 100644
--- a/cppcache/src/Properties.cpp
+++ b/cppcache/src/Properties.cpp
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#include <geode/Properties.hpp>
#include <geode/GeodeTypeIds.hpp>
@@ -26,6 +25,8 @@
#include "ace/Versioned_Namespace.h"
#include <ace/OS_NS_stdio.h>
+using namespace apache::geode::client;
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
template <>
@@ -307,7 +308,7 @@ void Properties::toData(DataOutput& output) const {
}
}
-void Properties::fromData(DataInput& input) {
+Serializable* Properties::fromData(DataInput& input) {
int32_t mapSize = 0;
input.readArrayLen(&mapSize);
for (int i = 0; i < mapSize; i++) {
@@ -332,8 +333,8 @@ void Properties::fromData(DataInput& input) {
}
}
}
+ return this;
}
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/PutAllPartialResult.hpp b/cppcache/src/PutAllPartialResult.hpp
index 1bdf4e8..f0ad50f 100644
--- a/cppcache/src/PutAllPartialResult.hpp
+++ b/cppcache/src/PutAllPartialResult.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_PUTALLPARTIALRESULT_H_
+#define GEODE_PUTALLPARTIALRESULT_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_PUTALLPARTIALRESULT_H_
-#define GEODE_PUTALLPARTIALRESULT_H_
-
#include <geode/Serializable.hpp>
#include <geode/CacheableString.hpp>
#include "VersionedCacheableObjectPartList.hpp"
@@ -28,7 +28,6 @@
namespace apache {
namespace geode {
namespace client {
-
class PutAllPartialResult;
typedef std::shared_ptr<PutAllPartialResult> PutAllPartialResultPtr;
@@ -114,9 +113,10 @@ class PutAllPartialResult : public Serializable {
"PutAllPartialResult::toData is not intended for use.");
}
- void fromData(DataInput& input) {
+ Serializable* fromData(DataInput& input) {
throw IllegalStateException(
"PutAllPartialResult::fromData is not intended for use.");
+ return nullptr;
}
int32_t classId() const {
@@ -133,7 +133,6 @@ class PutAllPartialResult : public Serializable {
int8_t typeId() const { return static_cast<int8_t>(0); }
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/PutAllPartialResultServerException.cpp b/cppcache/src/PutAllPartialResultServerException.cpp
index d9858d9..6588bff 100644
--- a/cppcache/src/PutAllPartialResultServerException.cpp
+++ b/cppcache/src/PutAllPartialResultServerException.cpp
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#include "PutAllPartialResultServerException.hpp"
namespace apache {
@@ -73,9 +72,10 @@ void PutAllPartialResultServerException::toData(DataOutput& output) const {
"PutAllPartialResultServerException::toData is not intended for use.");
}
-void PutAllPartialResultServerException::fromData(DataInput& input) {
+Serializable* PutAllPartialResultServerException::fromData(DataInput& input) {
throw IllegalStateException(
"PutAllPartialResultServerException::fromData is not intended for use.");
+ return nullptr;
}
int32_t PutAllPartialResultServerException::classId() const {
@@ -98,7 +98,6 @@ int8_t PutAllPartialResultServerException::typeId() const {
PutAllPartialResultServerException::PutAllPartialResultServerException(
CacheableStringPtr msg)
: m_message(msg) {}
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/PutAllPartialResultServerException.hpp b/cppcache/src/PutAllPartialResultServerException.hpp
index 793881a..1457408 100644
--- a/cppcache/src/PutAllPartialResultServerException.hpp
+++ b/cppcache/src/PutAllPartialResultServerException.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_PUTALLPARTIALRESULTSERVEREXCEPTION_H_
+#define GEODE_PUTALLPARTIALRESULTSERVEREXCEPTION_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_PUTALLPARTIALRESULTSERVEREXCEPTION_H_
-#define GEODE_PUTALLPARTIALRESULTSERVEREXCEPTION_H_
-
#include <geode/Serializable.hpp>
#include <geode/CacheableString.hpp>
#include "VersionedCacheableObjectPartList.hpp"
@@ -88,7 +88,7 @@ class CPPCACHE_EXPORT PutAllPartialResultServerException : public Serializable {
* the 'this' pointer.
* @throws IllegalStateException If this api is called from User code.
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/**
*@brief Return the classId of the instance being serialized.
@@ -141,7 +141,6 @@ class CPPCACHE_EXPORT PutAllPartialResultServerException : public Serializable {
CacheableStringPtr m_message; // error message
PutAllPartialResultPtr m_result;
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/QueueConnectionRequest.cpp b/cppcache/src/QueueConnectionRequest.cpp
index 0b8c28e..d2e2ddc 100644
--- a/cppcache/src/QueueConnectionRequest.cpp
+++ b/cppcache/src/QueueConnectionRequest.cpp
@@ -14,12 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#include "QueueConnectionRequest.hpp"
#include "GeodeTypeIdsImpl.hpp"
#include <geode/DataInput.hpp>
#include <geode/DataOutput.hpp>
-
using namespace apache::geode::client;
void QueueConnectionRequest::toData(DataOutput& output) const {
@@ -36,21 +34,20 @@ void QueueConnectionRequest::toData(DataOutput& output) const {
writeSetOfServerLocation(output);
output.writeBoolean(m_findDurable);
}
-
-void QueueConnectionRequest::fromData(DataInput& input) {}
-
+QueueConnectionRequest* QueueConnectionRequest::fromData(
+ DataInput& input) // NOt needed as of now.
+{
+ return nullptr;
+}
int8_t QueueConnectionRequest::typeId() const {
return static_cast<int8_t>(GeodeTypeIdsImpl::QueueConnectionRequest);
}
-
uint32_t QueueConnectionRequest::objectSize() const {
return 0; // will implement later.
}
-
std::set<ServerLocation> QueueConnectionRequest::getExcludedServer() const {
return m_excludedServers;
}
-
const ClientProxyMembershipID& QueueConnectionRequest::getProxyMemberShipId()
const {
return m_membershipID;
@@ -59,9 +56,7 @@ const ClientProxyMembershipID& QueueConnectionRequest::getProxyMemberShipId()
int QueueConnectionRequest::getRedundentCopies() const {
return m_redundantCopies;
}
-
bool QueueConnectionRequest::isFindDurable() const { return m_findDurable; }
-
void QueueConnectionRequest::writeSetOfServerLocation(
DataOutput& output) const {
output.writeInt(static_cast<int32_t>(m_excludedServers.size()));
diff --git a/cppcache/src/QueueConnectionRequest.hpp b/cppcache/src/QueueConnectionRequest.hpp
index 5e18223..138c699 100644
--- a/cppcache/src/QueueConnectionRequest.hpp
+++ b/cppcache/src/QueueConnectionRequest.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_QUEUECONNECTIONREQUEST_H_
+#define GEODE_QUEUECONNECTIONREQUEST_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -14,22 +19,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#pragma once
-
-#ifndef GEODE_QUEUECONNECTIONREQUEST_H_
-#define GEODE_QUEUECONNECTIONREQUEST_H_
-
#include "ServerLocationRequest.hpp"
#include "ServerLocation.hpp"
#include "ClientProxyMembershipID.hpp"
#include <set>
#include <string>
-
namespace apache {
namespace geode {
namespace client {
-
class QueueConnectionRequest : public ServerLocationRequest {
public:
QueueConnectionRequest(const ClientProxyMembershipID& memId,
@@ -44,7 +41,7 @@ class QueueConnectionRequest : public ServerLocationRequest {
m_serverGp(serverGp) {} // No need for default constructor as creating
// request with it does not make sense.
virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
+ virtual QueueConnectionRequest* fromData(DataInput& input);
virtual int8_t typeId() const;
virtual uint32_t objectSize() const;
virtual std::set<ServerLocation> getExcludedServer() const;
@@ -63,7 +60,6 @@ class QueueConnectionRequest : public ServerLocationRequest {
const bool m_findDurable;
std::string m_serverGp;
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/QueueConnectionResponse.cpp b/cppcache/src/QueueConnectionResponse.cpp
index 2ff9066..3b02ef3 100644
--- a/cppcache/src/QueueConnectionResponse.cpp
+++ b/cppcache/src/QueueConnectionResponse.cpp
@@ -19,14 +19,12 @@
#include "GeodeTypeIdsImpl.hpp"
#include <geode/DataInput.hpp>
#include "ServerLocation.hpp"
-
using namespace apache::geode::client;
-
-void QueueConnectionResponse::fromData(DataInput& input) {
+QueueConnectionResponse* QueueConnectionResponse::fromData(DataInput& input) {
input.readBoolean(&m_durableQueueFound);
readList(input);
+ return this;
}
-
int8_t QueueConnectionResponse::typeId() const {
return static_cast<int8_t>(GeodeTypeIdsImpl::QueueConnectionResponse);
}
diff --git a/cppcache/src/QueueConnectionResponse.hpp b/cppcache/src/QueueConnectionResponse.hpp
index cf04e4f..4023c18 100644
--- a/cppcache/src/QueueConnectionResponse.hpp
+++ b/cppcache/src/QueueConnectionResponse.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_QUEUECONNECTIONRESPONSE_H_
+#define GEODE_QUEUECONNECTIONRESPONSE_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -14,12 +19,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#pragma once
-
-#ifndef GEODE_QUEUECONNECTIONRESPONSE_H_
-#define GEODE_QUEUECONNECTIONRESPONSE_H_
-
#include <list>
#include "ServerLocationResponse.hpp"
#include <geode/DataInput.hpp>
@@ -27,12 +26,15 @@
namespace apache {
namespace geode {
namespace client {
-
class QueueConnectionResponse : public ServerLocationResponse {
public:
QueueConnectionResponse()
- : ServerLocationResponse(), m_durableQueueFound(false) {}
- virtual void fromData(DataInput& input);
+ : ServerLocationResponse(),
+ /* adongre
+ * CID 28940: Uninitialized scalar field (UNINIT_CTOR) *
+ */
+ m_durableQueueFound(false) {}
+ virtual QueueConnectionResponse* fromData(DataInput& input);
virtual int8_t typeId() const;
virtual uint32_t objectSize() const;
virtual std::list<ServerLocation> getServers() { return m_list; }
@@ -47,7 +49,6 @@ class QueueConnectionResponse : public ServerLocationResponse {
bool m_durableQueueFound;
};
typedef std::shared_ptr<QueueConnectionResponse> QueueConnectionResponsePtr;
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/RegionAttributes.cpp b/cppcache/src/RegionAttributes.cpp
index 0e2f66e..256dc89 100644
--- a/cppcache/src/RegionAttributes.cpp
+++ b/cppcache/src/RegionAttributes.cpp
@@ -513,7 +513,7 @@ void RegionAttributes::toData(DataOutput& out) const {
apache::geode::client::impl::writeBool(out, m_isConcurrencyChecksEnabled);
}
-void RegionAttributes::fromData(DataInput& in) {
+Serializable* RegionAttributes::fromData(DataInput& in) {
in.readInt(reinterpret_cast<int32_t*>(&m_regionTimeToLive));
in.readInt(reinterpret_cast<int32_t*>(&m_regionTimeToLiveExpirationAction));
in.readInt(reinterpret_cast<int32_t*>(&m_regionIdleTimeout));
@@ -547,6 +547,8 @@ void RegionAttributes::fromData(DataInput& in) {
in.readObject(m_persistenceProperties, true);
apache::geode::client::impl::readCharStar(in, &m_poolName);
apache::geode::client::impl::readBool(in, &m_isConcurrencyChecksEnabled);
+
+ return this;
}
/** Return true if all the attributes are equal to those of other. */
diff --git a/cppcache/src/SerializationRegistry.cpp b/cppcache/src/SerializationRegistry.cpp
index c2fd153..4f308b4 100644
--- a/cppcache/src/SerializationRegistry.cpp
+++ b/cppcache/src/SerializationRegistry.cpp
@@ -38,6 +38,8 @@
#include "ClientConnectionResponse.hpp"
#include "QueueConnectionResponse.hpp"
#include "LocatorListResponse.hpp"
+#include "GatewayEventCallbackArgument.hpp"
+#include "GatewaySenderEventCallbackArgument.hpp"
#include "ClientProxyMembershipID.hpp"
#include <ace/Singleton.h>
#include <ace/Thread_Mutex.h>
@@ -51,10 +53,9 @@
#include "VersionTag.hpp"
#include "DiskStoreId.hpp"
#include "DiskVersionTag.hpp"
+#include "CachedDeserializableHelper.hpp"
#include <mutex>
#include <functional>
-#include "PdxHelper.hpp"
-#include <geode/CacheableEnum.hpp>
namespace apache {
namespace geode {
@@ -108,10 +109,15 @@ void TheTypeMap::setup() {
bind2(QueueConnectionResponse::create);
bind2(LocatorListResponse::create);
bind2(ClientProxyMembershipID::createDeserializable);
+ bind2(GatewayEventCallbackArgument::createDeserializable);
+ bind2(GatewaySenderEventCallbackArgument::createDeserializable);
bind2(GetAllServersResponse::create);
bind2(EnumInfo::createDeserializable);
rebind2(GeodeTypeIdsImpl::DiskStoreId, DiskStoreId::createDeserializable);
+
+ bind2(CachedDeserializableHelper::createForVmCachedDeserializable);
+ bind2(CachedDeserializableHelper::createForPreferBytesDeserializable);
}
/** This starts at reading the typeid.. assumes the length has been read. */
@@ -125,95 +131,73 @@ SerializablePtr SerializationRegistry::deserialize(DataInput& input,
LOGDEBUG("SerializationRegistry::deserialize typeid = %d currentTypeId= %d ",
typeId, currentTypeId);
-
- switch (compId) {
- case GeodeTypeIds::NullObj: {
- return nullptr;
- break;
- }
- case GeodeTypeIds::CacheableNullString: {
- return SerializablePtr(CacheableString::createDeserializable());
- break;
- }
- case GeodeTypeIdsImpl::PDX: {
- return PdxHelper::deserializePdx(input, false);
- break;
- }
- case GeodeTypeIds::CacheableEnum: {
- auto enumObject = CacheableEnum::create(" ", " ", 0);
- enumObject->fromData(input);
- return enumObject;
- break;
- }
- case GeodeTypeIdsImpl::CacheableUserData: {
- int8_t classId = 0;
- input.read(&classId);
- compId |= ((static_cast<int64_t>(classId)) << 32);
- break;
- }
- case GeodeTypeIdsImpl::CacheableUserData2: {
- int16_t classId = 0;
- input.readInt(&classId);
- compId |= ((static_cast<int64_t>(classId)) << 32);
- break;
- }
- case GeodeTypeIdsImpl::CacheableUserData4: {
- int32_t classId = 0;
- input.readInt(&classId);
- compId |= ((static_cast<int64_t>(classId)) << 32);
- break;
- }
- case GeodeTypeIdsImpl::FixedIDByte: {
- int8_t fixedId;
- input.read(&fixedId);
- compId = fixedId;
- findinternal = true;
- break;
- }
- case GeodeTypeIdsImpl::FixedIDShort: {
- int16_t fixedId;
- input.readInt(&fixedId);
- compId = fixedId;
- findinternal = true;
- break;
- }
- case GeodeTypeIdsImpl::FixedIDInt: {
- int32_t fixedId;
- input.readInt(&fixedId);
- compId = fixedId;
- findinternal = true;
- break;
- }
+ if (compId == GeodeTypeIds::NullObj) {
+ return nullptr;
+ } else if (compId == GeodeTypeIds::CacheableNullString) {
+ return SerializablePtr(CacheableString::createDeserializable());
+ } else if (compId == GeodeTypeIdsImpl::CacheableUserData) {
+ int8_t classId = 0;
+ input.read(&classId);
+ compId |= ((static_cast<int64_t>(classId)) << 32);
+ } else if (compId == GeodeTypeIdsImpl::CacheableUserData2) {
+ int16_t classId = 0;
+ input.readInt(&classId);
+ compId |= ((static_cast<int64_t>(classId)) << 32);
+ } else if (compId == GeodeTypeIdsImpl::CacheableUserData4) {
+ int32_t classId = 0;
+ input.readInt(&classId);
+ compId |= ((static_cast<int64_t>(classId)) << 32);
}
TypeFactoryMethod createType = nullptr;
+ if (compId == GeodeTypeIdsImpl::FixedIDByte) {
+ int8_t fixedId;
+ input.read(&fixedId);
+ compId = fixedId;
+ findinternal = true;
+ } else if (compId == GeodeTypeIdsImpl::FixedIDShort) {
+ int16_t fixedId;
+ input.readInt(&fixedId);
+ compId = fixedId;
+ findinternal = true;
+ } else if (compId == GeodeTypeIdsImpl::FixedIDInt) {
+ int32_t fixedId;
+ input.readInt(&fixedId);
+ compId = fixedId;
+ findinternal = true;
+ }
+
if (findinternal) {
theTypeMap.find2(compId, createType);
} else {
theTypeMap.find(compId, createType);
}
-
if (createType == nullptr) {
if (findinternal) {
LOGERROR(
"Unregistered class ID %d during deserialization: Did the "
- "application register serialization types?",
+ "application register "
+ "serialization types?",
compId);
} else {
LOGERROR(
"Unregistered class ID %d during deserialization: Did the "
- "application register serialization types?",
+ "application register "
+ "serialization types?",
(compId >> 32));
}
// instead of a null key or null value... an Exception should be thrown..
throw IllegalStateException("Unregistered class ID in deserialization");
}
-
SerializablePtr obj(createType());
- obj->fromData(input);
- return obj;
+ // This assignment allows the fromData method to return a different object.
+ auto tmp = obj->fromData(input);
+ if (obj.get() == tmp) {
+ return obj;
+ }
+ return tmp->shared_from_this();
}
void SerializationRegistry::addType(TypeFactoryMethod func) {
diff --git a/cppcache/src/ServerLocation.hpp b/cppcache/src/ServerLocation.hpp
index bb1e548..ca7661a 100644
--- a/cppcache/src/ServerLocation.hpp
+++ b/cppcache/src/ServerLocation.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_SERVERLOCATION_H_
+#define GEODE_SERVERLOCATION_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -14,12 +19,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#pragma once
-
-#ifndef GEODE_SERVERLOCATION_H_
-#define GEODE_SERVERLOCATION_H_
-
#include <geode/Serializable.hpp>
#include <string>
#include <geode/DataInput.hpp>
@@ -29,11 +28,9 @@
#include "GeodeTypeIdsImpl.hpp"
#include <ace/INET_Addr.h>
#include <geode/CacheableBuiltins.hpp>
-
namespace apache {
namespace geode {
namespace client {
-
class CPPCACHE_EXPORT ServerLocation : public Serializable {
public:
ServerLocation(std::string serverName, int port)
@@ -74,14 +71,17 @@ class CPPCACHE_EXPORT ServerLocation : public Serializable {
int getPort() const { return m_port; }
void toData(DataOutput& output) const {
if (m_serverName != nullptr) {
- output.writeNativeString(m_serverName->asChar());
+ // output.writeObject( m_serverName );
+ output.writeNativeString(m_serverName->asChar()); // changed
}
output.writeInt(m_port);
}
- void fromData(DataInput& input) {
+ ServerLocation* fromData(DataInput& input) {
+ // input.readObject(m_serverName);
input.readNativeString(m_serverName);
input.readInt((int32_t*)&m_port);
makeEpString();
+ return this;
}
uint32_t objectSize() const {
if (m_serverName != nullptr) {
@@ -160,7 +160,6 @@ class CPPCACHE_EXPORT ServerLocation : public Serializable {
int m_port;
std::string m_epString;
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/ServerLocationRequest.hpp b/cppcache/src/ServerLocationRequest.hpp
index 8c13370..7dd59ac 100644
--- a/cppcache/src/ServerLocationRequest.hpp
+++ b/cppcache/src/ServerLocationRequest.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_SERVERLOCATIONREQUEST_H_
+#define GEODE_SERVERLOCATIONREQUEST_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -14,14 +19,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#pragma once
-
-#ifndef GEODE_SERVERLOCATIONREQUEST_H_
-#define GEODE_SERVERLOCATIONREQUEST_H_
-
#include <geode/Serializable.hpp>
-
namespace apache {
namespace geode {
namespace client {
@@ -29,14 +27,13 @@ class ServerLocationRequest : public Serializable {
public:
ServerLocationRequest() : Serializable() {}
virtual void toData(DataOutput& output) const = 0;
- virtual void fromData(DataInput& input) = 0;
+ virtual Serializable* fromData(DataInput& input) = 0;
virtual int32_t classId() const;
virtual int8_t typeId() const = 0;
virtual int8_t DSFID() const;
virtual uint32_t objectSize() const = 0;
virtual ~ServerLocationRequest() {}
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/ServerLocationResponse.hpp b/cppcache/src/ServerLocationResponse.hpp
index 3f92615..105f2d9 100644
--- a/cppcache/src/ServerLocationResponse.hpp
+++ b/cppcache/src/ServerLocationResponse.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_SERVERLOCATIONRESPONSE_H_
+#define GEODE_SERVERLOCATIONRESPONSE_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -14,24 +19,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#pragma once
-
-#ifndef GEODE_SERVERLOCATIONRESPONSE_H_
-#define GEODE_SERVERLOCATIONRESPONSE_H_
-
#include <geode/Serializable.hpp>
#include "GeodeTypeIdsImpl.hpp"
-
namespace apache {
namespace geode {
namespace client {
-
class ServerLocationResponse : public Serializable {
public:
ServerLocationResponse() : Serializable() {}
virtual void toData(DataOutput& output) const {} // Not needed as of now
- virtual void fromData(
+ virtual Serializable* fromData(
DataInput& input) = 0; // Has to be implemented by concerte class
virtual int32_t classId() const { return 0; }
virtual int8_t typeId() const = 0; // Has to be implemented by concrete class
@@ -42,7 +39,6 @@ class ServerLocationResponse : public Serializable {
const = 0; // Has to be implemented by concrete class
virtual ~ServerLocationResponse() {} // Virtual destructor
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/Struct.cpp b/cppcache/src/Struct.cpp
index 6b28f6b..d84c00a 100644
--- a/cppcache/src/Struct.cpp
+++ b/cppcache/src/Struct.cpp
@@ -64,7 +64,7 @@ int32_t Struct::length() const {
return static_cast<int32_t>(m_fieldValues.size());
}
-void Struct::fromData(DataInput& input) {
+Serializable* Struct::fromData(DataInput& input) {
int8_t classType;
input.read(&classType);
input.read(&classType);
@@ -96,6 +96,7 @@ void Struct::fromData(DataInput& input) {
input.readObject(val); // need to look
m_fieldValues.push_back(val);
}
+ return this;
}
const std::string& Struct::getFieldName(const int32_t index) const {
diff --git a/cppcache/src/TXCommitMessage.cpp b/cppcache/src/TXCommitMessage.cpp
index 938f30f..933d980 100644
--- a/cppcache/src/TXCommitMessage.cpp
+++ b/cppcache/src/TXCommitMessage.cpp
@@ -33,9 +33,7 @@ namespace apache {
namespace geode {
namespace client {
-TXCommitMessage::TXCommitMessage(
- MemberListForVersionStamp& memberListForVersionStamp)
- : m_memberListForVersionStamp(memberListForVersionStamp)
+TXCommitMessage::TXCommitMessage(MemberListForVersionStamp & memberListForVersionStamp) : m_memberListForVersionStamp(memberListForVersionStamp)
// UNUSED : m_processorId(0)
{}
@@ -43,7 +41,7 @@ TXCommitMessage::~TXCommitMessage() {}
bool TXCommitMessage::isAckRequired() { return false; }
-void TXCommitMessage::fromData(DataInput& input) {
+Serializable* TXCommitMessage::fromData(DataInput& input) {
int32_t pId;
input.readInt(&pId);
/*
@@ -147,6 +145,10 @@ m_processorId = -1;
CacheablePtr tmp;
input.readObject(tmp);
}
+
+ // input.readObject(farSiders);
+
+ return this;
}
void TXCommitMessage::toData(DataOutput& output) const {}
@@ -157,16 +159,12 @@ int8_t TXCommitMessage::typeId() const {
return static_cast<int8_t>(GeodeTypeIdsImpl::TXCommitMessage);
}
-Serializable* TXCommitMessage::create(
- MemberListForVersionStamp& memberListForVersionStamp) {
- return new TXCommitMessage(memberListForVersionStamp);
-}
+Serializable* TXCommitMessage::create(MemberListForVersionStamp & memberListForVersionStamp) { return new TXCommitMessage(memberListForVersionStamp); }
void TXCommitMessage::apply(Cache* cache) {
for (std::vector<RegionCommitPtr>::iterator iter = m_regions.begin();
m_regions.end() != iter; iter++) {
- RegionCommitPtr regionCommit =
- std::static_pointer_cast<RegionCommit>(*iter);
+ RegionCommitPtr regionCommit = std::static_pointer_cast<RegionCommit>(*iter);
regionCommit->apply(cache);
}
}
diff --git a/cppcache/src/TXCommitMessage.hpp b/cppcache/src/TXCommitMessage.hpp
index eb12895..09bc702 100644
--- a/cppcache/src/TXCommitMessage.hpp
+++ b/cppcache/src/TXCommitMessage.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TXCOMMITMESSAGE_H_
+#define GEODE_TXCOMMITMESSAGE_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_TXCOMMITMESSAGE_H_
-#define GEODE_TXCOMMITMESSAGE_H_
-
#include <geode/geode_globals.hpp>
#include <geode/geode_types.hpp>
#include <geode/DataInput.hpp>
@@ -28,20 +28,18 @@
namespace apache {
namespace geode {
namespace client {
-
_GF_PTR_DEF_(TXCommitMessage, TXCommitMessagePtr);
class TXCommitMessage : public apache::geode::client::Cacheable {
public:
- TXCommitMessage(MemberListForVersionStamp& memberListForVersionStamp);
+ TXCommitMessage(MemberListForVersionStamp & memberListForVersionStamp);
virtual ~TXCommitMessage();
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
virtual void toData(DataOutput& output) const;
virtual int32_t classId() const;
int8_t typeId() const;
- static Serializable* create(
- MemberListForVersionStamp& memberListForVersionStamp);
+ static Serializable* create(MemberListForVersionStamp & memberListForVersionStamp);
// VectorOfEntryEvent getEvents(Cache* cache);
void apply(Cache* cache);
@@ -49,10 +47,9 @@ class TXCommitMessage : public apache::geode::client::Cacheable {
private:
// UNUSED int32_t m_processorId;
bool isAckRequired();
- MemberListForVersionStamp& m_memberListForVersionStamp;
+ MemberListForVersionStamp & m_memberListForVersionStamp;
std::vector<RegionCommitPtr> m_regions;
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/UserFunctionExecutionException.cpp b/cppcache/src/UserFunctionExecutionException.cpp
index b3de8d0..f4097ed 100644
--- a/cppcache/src/UserFunctionExecutionException.cpp
+++ b/cppcache/src/UserFunctionExecutionException.cpp
@@ -25,9 +25,10 @@ void UserFunctionExecutionException::toData(DataOutput& output) const {
"UserFunctionExecutionException::toData is not intended for use.");
}
-void UserFunctionExecutionException::fromData(DataInput& input) {
+Serializable* UserFunctionExecutionException::fromData(DataInput& input) {
throw IllegalStateException(
"UserFunctionExecutionException::fromData is not intended for use.");
+ return nullptr;
}
int32_t UserFunctionExecutionException::classId() const {
diff --git a/cppcache/src/VersionTag.cpp b/cppcache/src/VersionTag.cpp
index 9a3a023..8d57e81 100644
--- a/cppcache/src/VersionTag.cpp
+++ b/cppcache/src/VersionTag.cpp
@@ -50,7 +50,7 @@ void VersionTag::toData(DataOutput& output) const {
throw IllegalStateException("VersionTag::toData not implemented");
}
-void VersionTag::fromData(DataInput& input) {
+Serializable* VersionTag::fromData(DataInput& input) {
uint16_t flags;
input.readInt(&flags);
input.readInt(&m_bits);
@@ -71,6 +71,7 @@ void VersionTag::fromData(DataInput& input) {
input.readInt(&m_regionVersionLowBytes);
input.readUnsignedVL(&m_timeStamp);
readMembers(flags, input);
+ return this;
}
Serializable* VersionTag::createDeserializable(
diff --git a/cppcache/src/VersionTag.hpp b/cppcache/src/VersionTag.hpp
index dd7479c..0489009 100644
--- a/cppcache/src/VersionTag.hpp
+++ b/cppcache/src/VersionTag.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_VERSIONTAG_H_
+#define GEODE_VERSIONTAG_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,15 +20,9 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_VERSIONTAG_H_
-#define GEODE_VERSIONTAG_H_
-
#include <geode/Cacheable.hpp>
#include "GeodeTypeIdsImpl.hpp"
#include "MemberListForVersionStamp.hpp"
-
namespace apache {
namespace geode {
namespace client {
@@ -65,7 +64,7 @@ class VersionTag : public Cacheable {
virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
static Serializable* createDeserializable(
MemberListForVersionStamp& memberListForVersionStamp);
@@ -76,6 +75,7 @@ class VersionTag : public Cacheable {
uint16_t getInternalMemID() const { return m_internalMemId; }
uint16_t getPreviousMemID() const { return m_previousMemId; }
void replaceNullMemberId(uint16_t memId);
+ // DSMemberForVersionStampPtr getMemberID(uint16_t memID);
void setInternalMemID(uint16_t internalMemId) {
m_internalMemId = internalMemId;
}
@@ -88,7 +88,6 @@ class VersionTag : public Cacheable {
uint16_t previousMemId,
MemberListForVersionStamp& memberListForVersionStamp);
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/cppcache/src/VersionedCacheableObjectPartList.cpp b/cppcache/src/VersionedCacheableObjectPartList.cpp
index 1caa489..ecfc350 100644
--- a/cppcache/src/VersionedCacheableObjectPartList.cpp
+++ b/cppcache/src/VersionedCacheableObjectPartList.cpp
@@ -96,7 +96,7 @@ void VersionedCacheableObjectPartList::readObjectPart(int32_t index,
}
}
-void VersionedCacheableObjectPartList::fromData(DataInput& input) {
+Serializable* VersionedCacheableObjectPartList::fromData(DataInput& input) {
ACE_Guard<ACE_Recursive_Thread_Mutex> guard(m_responseLock);
LOGDEBUG("VersionedCacheableObjectPartList::fromData");
uint8_t flags = 0;
@@ -123,6 +123,7 @@ void VersionedCacheableObjectPartList::fromData(DataInput& input) {
LOGDEBUG(
"VersionedCacheableObjectPartList::fromData: Looks like message has no "
"data. Returning,");
+ return nullptr;
}
auto localKeys = std::make_shared<VectorOfCacheableKey>();
@@ -316,6 +317,7 @@ void VersionedCacheableObjectPartList::fromData(DataInput& input) {
}
if (m_keysOffset != nullptr) *m_keysOffset += len;
if (valuesNULL) m_values = nullptr;
+ return this;
}
int32_t VersionedCacheableObjectPartList::classId() const { return 0; }
diff --git a/cppcache/src/VersionedCacheableObjectPartList.hpp b/cppcache/src/VersionedCacheableObjectPartList.hpp
index df4b10a..9ebd6f4 100644
--- a/cppcache/src/VersionedCacheableObjectPartList.hpp
+++ b/cppcache/src/VersionedCacheableObjectPartList.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_VERSIONEDCACHEABLEOBJECTPARTLIST_H_
+#define GEODE_VERSIONEDCACHEABLEOBJECTPARTLIST_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,13 +20,19 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_VERSIONEDCACHEABLEOBJECTPARTLIST_H_
-#define GEODE_VERSIONEDCACHEABLEOBJECTPARTLIST_H_
-
+/*
+#include <geode/geode_globals.hpp>
+#include <geode/geode_types.hpp>
+#include <geode/DataOutput.hpp>
+#include <geode/DataInput.hpp>
+#include <geode/Cacheable.hpp>
+#include <geode/VectorT.hpp>
+#include <geode/HashMapT.hpp>
+#include "MapWithLock.hpp"
+*/
#include "CacheableObjectPartList.hpp"
#include "VersionTag.hpp"
+//#include "DiskVersionTag.hpp"
#include <ace/Task.h>
#include <vector>
@@ -31,7 +42,6 @@
namespace apache {
namespace geode {
namespace client {
-
class ThinClientRegion;
/**
@@ -257,7 +267,7 @@ class VersionedCacheableObjectPartList : public CacheableObjectPartList {
/**
*@brief deserialize this object
**/
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
/**
* @brief creation function for java Object[]
@@ -289,7 +299,6 @@ class VersionedCacheableObjectPartList : public CacheableObjectPartList {
virtual uint32_t objectSize() const;
};
-
} // namespace client
} // namespace geode
} // namespace apache
diff --git a/quickstart/cpp/queryobjects/Position.hpp b/quickstart/cpp/queryobjects/Position.hpp
index 34d8a9a..aac3c93 100644
--- a/quickstart/cpp/queryobjects/Position.hpp
+++ b/quickstart/cpp/queryobjects/Position.hpp
@@ -19,8 +19,6 @@
* @brief User class for testing the put functionality for object.
*/
-#pragma once
-
#ifndef __POSITION_HPP__
#define __POSITION_HPP__
@@ -68,7 +66,8 @@ class TESTOBJECT_EXPORT Position : public apache::geode::client::Serializable {
Position(const char* id, int32_t out);
virtual ~Position();
virtual void toData(apache::geode::client::DataOutput& output) const;
- virtual void fromData(apache::geode::client::DataInput& input);
+ virtual apache::geode::client::Serializable* fromData(
+ apache::geode::client::DataInput& input);
virtual int32_t classId() const { return 0x02; }
CacheableStringPtr toString() const;
diff --git a/tests/cpp/testobject/BatchObject.cpp b/tests/cpp/testobject/BatchObject.cpp
index d581596..c93e907 100644
--- a/tests/cpp/testobject/BatchObject.cpp
+++ b/tests/cpp/testobject/BatchObject.cpp
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#include "BatchObject.hpp"
using namespace apache::geode::client;
@@ -40,13 +39,14 @@ void BatchObject::toData(apache::geode::client::DataOutput& output) const {
output.writeObject(byteArray);
}
-void BatchObject::fromData(apache::geode::client::DataInput& input) {
+apache::geode::client::Serializable* BatchObject::fromData(
+ apache::geode::client::DataInput& input) {
input.readInt(&index);
input.readInt(reinterpret_cast<int64_t*>(×tamp));
input.readInt(&batch);
input.readObject(byteArray);
+ return this;
}
-
CacheableStringPtr BatchObject::toString() const {
char buf[102500];
sprintf(buf,
diff --git a/tests/cpp/testobject/BatchObject.hpp b/tests/cpp/testobject/BatchObject.hpp
index ea1fcfb..96e819b 100644
--- a/tests/cpp/testobject/BatchObject.hpp
+++ b/tests/cpp/testobject/BatchObject.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TESTOBJECT_BATCHOBJECT_H_
+#define GEODE_TESTOBJECT_BATCHOBJECT_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
- #pragma once
-
- #ifndef GEODE_TESTOBJECT_BATCHOBJECT_H_
- #define GEODE_TESTOBJECT_BATCHOBJECT_H_
-
/*
* @brief User class for testing the cq functionality.
*/
@@ -62,7 +62,8 @@ class TESTOBJECT_EXPORT BatchObject : public TimestampedObject {
BatchObject(int32_t anIndex, int32_t batchSize, int32_t size);
virtual ~BatchObject();
virtual void toData(apache::geode::client::DataOutput& output) const;
- virtual void fromData(apache::geode::client::DataInput& input);
+ virtual apache::geode::client::Serializable* fromData(
+ apache::geode::client::DataInput& input);
virtual int32_t classId() const { return 25; }
CacheableStringPtr toString() const;
diff --git a/tests/cpp/testobject/DeltaFastAssetAccount.cpp b/tests/cpp/testobject/DeltaFastAssetAccount.cpp
index 010584c..8530b63 100644
--- a/tests/cpp/testobject/DeltaFastAssetAccount.cpp
+++ b/tests/cpp/testobject/DeltaFastAssetAccount.cpp
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#include "DeltaFastAssetAccount.hpp"
using namespace apache::geode::client;
@@ -52,12 +51,14 @@ void DeltaFastAssetAccount::toData(
output.writeInt(static_cast<int64_t>(timestamp));
}
-void DeltaFastAssetAccount::fromData(apache::geode::client::DataInput& input) {
+apache::geode::client::Serializable* DeltaFastAssetAccount::fromData(
+ apache::geode::client::DataInput& input) {
input.readInt(&acctId);
input.readObject(customerName);
input.readDouble(&netWorth);
input.readObject(assets);
input.readInt(reinterpret_cast<int64_t*>(×tamp));
+ return this;
}
void DeltaFastAssetAccount::toDelta(
@@ -67,7 +68,6 @@ void DeltaFastAssetAccount::toDelta(
output.writeInt(static_cast<int64_t>(timestamp));
}
}
-
void DeltaFastAssetAccount::fromDelta(apache::geode::client::DataInput& input) {
if (getBeforeUpdate) {
input.readDouble(&netWorth);
diff --git a/tests/cpp/testobject/DeltaFastAssetAccount.hpp b/tests/cpp/testobject/DeltaFastAssetAccount.hpp
index 1808292..f27cb09 100644
--- a/tests/cpp/testobject/DeltaFastAssetAccount.hpp
+++ b/tests/cpp/testobject/DeltaFastAssetAccount.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TESTOBJECT_DELTAFASTASSETACCOUNT_H_
+#define GEODE_TESTOBJECT_DELTAFASTASSETACCOUNT_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_TESTOBJECT_DELTAFASTASSETACCOUNT_H_
-#define GEODE_TESTOBJECT_DELTAFASTASSETACCOUNT_H_
-
/*
* @brief User class for testing the query functionality.
*/
@@ -76,7 +76,8 @@ class TESTOBJECT_EXPORT DeltaFastAssetAccount : public Cacheable, public Delta {
virtual ~DeltaFastAssetAccount() {}
void toData(apache::geode::client::DataOutput& output) const;
- void fromData(apache::geode::client::DataInput& input);
+ apache::geode::client::Serializable* fromData(
+ apache::geode::client::DataInput& input);
void toDelta(apache::geode::client::DataOutput& output) const;
void fromDelta(apache::geode::client::DataInput& input);
diff --git a/tests/cpp/testobject/DeltaPSTObject.cpp b/tests/cpp/testobject/DeltaPSTObject.cpp
index 6581b55..94246e6 100644
--- a/tests/cpp/testobject/DeltaPSTObject.cpp
+++ b/tests/cpp/testobject/DeltaPSTObject.cpp
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#include "fwklib/GsRandom.hpp"
#include "ArrayOfByte.hpp"
#include "DeltaPSTObject.hpp"
@@ -39,17 +38,14 @@ DeltaPSTObject::DeltaPSTObject(int size, bool encodeKey, bool encodeTimestamp)
valueData = ArrayOfByte::init(size, encodeKey, false);
}
}
-
void DeltaPSTObject::fromDelta(DataInput& input) {
input.readInt(&field1);
input.readInt(reinterpret_cast<int64_t*>(×tamp));
}
-
void DeltaPSTObject::toDelta(DataOutput& output) const {
output.writeInt(static_cast<int32_t>(field1));
output.writeInt(static_cast<int64_t>(timestamp));
}
-
void DeltaPSTObject::toData(apache::geode::client::DataOutput& output) const {
output.writeInt(static_cast<int64_t>(timestamp));
output.writeInt(static_cast<int32_t>(field1));
@@ -57,13 +53,14 @@ void DeltaPSTObject::toData(apache::geode::client::DataOutput& output) const {
output.writeObject(valueData);
}
-void DeltaPSTObject::fromData(apache::geode::client::DataInput& input) {
+apache::geode::client::Serializable* DeltaPSTObject::fromData(
+ apache::geode::client::DataInput& input) {
input.readInt(reinterpret_cast<int64_t*>(×tamp));
input.readInt(&field1);
input.read(&field2);
input.readObject(valueData);
+ return this;
}
-
CacheableStringPtr DeltaPSTObject::toString() const {
char buf[102500];
sprintf(
diff --git a/tests/cpp/testobject/DeltaPSTObject.hpp b/tests/cpp/testobject/DeltaPSTObject.hpp
index 08cdf53..2b581a1 100644
--- a/tests/cpp/testobject/DeltaPSTObject.hpp
+++ b/tests/cpp/testobject/DeltaPSTObject.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TESTOBJECT_DELTAPSTOBJECT_H_
+#define GEODE_TESTOBJECT_DELTAPSTOBJECT_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_TESTOBJECT_DELTAPSTOBJECT_H_
-#define GEODE_TESTOBJECT_DELTAPSTOBJECT_H_
-
/*
* @brief User class for testing the put functionality for object.
*/
@@ -63,7 +63,8 @@ class TESTOBJECT_EXPORT DeltaPSTObject : public Cacheable, public Delta {
DeltaPSTObject(int size, bool encodeKey, bool encodeTimestamp);
virtual ~DeltaPSTObject() {}
void toData(apache::geode::client::DataOutput& output) const;
- void fromData(apache::geode::client::DataInput& input);
+ apache::geode::client::Serializable* fromData(
+ apache::geode::client::DataInput& input);
void fromDelta(DataInput& input);
void toDelta(DataOutput& output) const;
CacheableStringPtr toString() const;
diff --git a/tests/cpp/testobject/DeltaTestImpl.cpp b/tests/cpp/testobject/DeltaTestImpl.cpp
index 6031c21..f77bdcc 100644
--- a/tests/cpp/testobject/DeltaTestImpl.cpp
+++ b/tests/cpp/testobject/DeltaTestImpl.cpp
@@ -65,12 +65,13 @@ DeltaTestImpl::DeltaTestImpl(DeltaTestImplPtr rhs) : Delta(nullptr) {
fromDeltaCounter = rhs->getFromDeltaCounter();
}
-void DeltaTestImpl::fromData(DataInput& input) {
+Serializable* DeltaTestImpl::fromData(DataInput& input) {
input.readInt(&intVar);
input.readObject(str);
input.readDouble(&doubleVar);
input.readObject(byteArr);
input.readObject(testObj);
+ return this;
}
void DeltaTestImpl::toData(DataOutput& output) const {
diff --git a/tests/cpp/testobject/DeltaTestImpl.hpp b/tests/cpp/testobject/DeltaTestImpl.hpp
index 1d87624..ee4ebed 100644
--- a/tests/cpp/testobject/DeltaTestImpl.hpp
+++ b/tests/cpp/testobject/DeltaTestImpl.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TESTOBJECT_DELTATESTIMPL_H_
+#define GEODE_TESTOBJECT_DELTATESTIMPL_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -14,11 +19,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#pragma once
-
-#ifndef GEODE_TESTOBJECT_DELTATESTIMPL_H_
-#define GEODE_TESTOBJECT_DELTATESTIMPL_H_
+/*
+ * DeltaTestImpl.hpp
+ *
+ * Created on: Jul 14, 2009
+ * Author: abhaware
+ */
#include <ace/ACE.h>
#include <ace/OS.h>
@@ -41,10 +47,8 @@
using namespace apache::geode::client;
namespace testobject {
-
class DeltaTestImpl;
typedef std::shared_ptr<DeltaTestImpl> DeltaTestImplPtr;
-
class TESTOBJECT_EXPORT DeltaTestImpl : public Cacheable, public Delta {
private:
static uint8_t INT_MASK;
@@ -70,7 +74,7 @@ class TESTOBJECT_EXPORT DeltaTestImpl : public Cacheable, public Delta {
DeltaTestImpl();
DeltaTestImpl(int intValue, CacheableStringPtr strptr);
DeltaTestImpl(DeltaTestImplPtr rhs);
- void fromData(DataInput& input);
+ Serializable* fromData(DataInput& input);
void toData(DataOutput& output) const;
void fromDelta(DataInput& input);
@@ -116,7 +120,6 @@ class TESTOBJECT_EXPORT DeltaTestImpl : public Cacheable, public Delta {
void setTestObjFlag() { deltaBits = deltaBits | TEST_OBJ_MASK; }
CacheableStringPtr toString() const;
};
-
} // namespace testobject
#endif // GEODE_TESTOBJECT_DELTATESTIMPL_H_
diff --git a/tests/cpp/testobject/EqStruct.cpp b/tests/cpp/testobject/EqStruct.cpp
index 755789e..559aef9 100644
--- a/tests/cpp/testobject/EqStruct.cpp
+++ b/tests/cpp/testobject/EqStruct.cpp
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#include "EqStruct.hpp"
using namespace apache::geode::client;
@@ -140,7 +139,8 @@ void EqStruct::toData(apache::geode::client::DataOutput &out) const {
out.writeDouble(discretionOffset);
}
-void EqStruct::fromData(apache::geode::client::DataInput &in) {
+apache::geode::client::Serializable *EqStruct::fromData(
+ apache::geode::client::DataInput &in) {
// Strings
in.readUTF(&state);
in.readUTF(&demandInd);
@@ -198,8 +198,8 @@ void EqStruct::fromData(apache::geode::client::DataInput &in) {
in.readDouble(&stopPx);
in.readDouble(&pegDifference);
in.readDouble(&discretionOffset);
+ return this;
}
-
CacheableStringPtr EqStruct::toString() const {
char buf[102500];
sprintf(buf, "EqStruct:[timestamp = %lld myIndex = %d cxlQty = %d ]",
diff --git a/tests/cpp/testobject/EqStruct.hpp b/tests/cpp/testobject/EqStruct.hpp
index 0019ed7..19cef03 100644
--- a/tests/cpp/testobject/EqStruct.hpp
+++ b/tests/cpp/testobject/EqStruct.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TESTOBJECT_EQSTRUCT_H_
+#define GEODE_TESTOBJECT_EQSTRUCT_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_TESTOBJECT_EQSTRUCT_H_
-#define GEODE_TESTOBJECT_EQSTRUCT_H_
-
/*
* @brief User class for testing the put functionality for object.
*/
@@ -108,7 +108,8 @@ class TESTOBJECT_EXPORT EqStruct : public TimestampedObject {
EqStruct(int index);
virtual ~EqStruct();
virtual void toData(apache::geode::client::DataOutput& output) const;
- virtual void fromData(apache::geode::client::DataInput& input);
+ virtual apache::geode::client::Serializable* fromData(
+ apache::geode::client::DataInput& input);
virtual int32_t classId() const { return 101; }
CacheableStringPtr toString() const;
diff --git a/tests/cpp/testobject/FastAsset.cpp b/tests/cpp/testobject/FastAsset.cpp
index 005a289..7595993 100644
--- a/tests/cpp/testobject/FastAsset.cpp
+++ b/tests/cpp/testobject/FastAsset.cpp
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#include "FastAsset.hpp"
#include "fwklib/GsRandom.hpp"
@@ -32,7 +31,9 @@ void FastAsset::toData(apache::geode::client::DataOutput& output) const {
output.writeDouble(value);
}
-void FastAsset::fromData(apache::geode::client::DataInput& input) {
+apache::geode::client::Serializable* FastAsset::fromData(
+ apache::geode::client::DataInput& input) {
input.readInt(&assetId);
input.readDouble(&value);
+ return this;
}
diff --git a/tests/cpp/testobject/FastAsset.hpp b/tests/cpp/testobject/FastAsset.hpp
index ca866c1..6890943 100644
--- a/tests/cpp/testobject/FastAsset.hpp
+++ b/tests/cpp/testobject/FastAsset.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TESTOBJECT_FASTASSET_H_
+#define GEODE_TESTOBJECT_FASTASSET_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_TESTOBJECT_FASTASSET_H_
-#define GEODE_TESTOBJECT_FASTASSET_H_
-
/*
* @brief User class for testing the query functionality.
*/
@@ -63,7 +63,8 @@ class TESTOBJECT_EXPORT FastAsset : public TimestampedObject {
FastAsset(int size, int maxVal);
virtual ~FastAsset();
virtual void toData(apache::geode::client::DataOutput& output) const;
- virtual void fromData(apache::geode::client::DataInput& input);
+ virtual apache::geode::client::Serializable* fromData(
+ apache::geode::client::DataInput& input);
virtual int32_t classId() const { return 24; }
virtual uint32_t objectSize() const {
diff --git a/tests/cpp/testobject/FastAssetAccount.cpp b/tests/cpp/testobject/FastAssetAccount.cpp
index 8f8bf83..8ef234d 100644
--- a/tests/cpp/testobject/FastAssetAccount.cpp
+++ b/tests/cpp/testobject/FastAssetAccount.cpp
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#include "FastAssetAccount.hpp"
#include "FastAsset.hpp"
@@ -45,8 +44,8 @@ FastAssetAccount::FastAssetAccount(int idx, bool encodeTimestp, int maxVal,
}
FastAssetAccount::~FastAssetAccount() {}
-
void FastAssetAccount::toData(apache::geode::client::DataOutput& output) const {
+ // output.writeBoolean(encodeTimestamp);
output.writeInt(static_cast<int32_t>(acctId));
output.writeObject(customerName);
output.writeDouble(netWorth);
@@ -54,14 +53,16 @@ void FastAssetAccount::toData(apache::geode::client::DataOutput& output) const {
output.writeInt(static_cast<int64_t>(timestamp));
}
-void FastAssetAccount::fromData(apache::geode::client::DataInput& input) {
+apache::geode::client::Serializable* FastAssetAccount::fromData(
+ apache::geode::client::DataInput& input) {
+ // input.readBoolean(&encodeTimestamp);
input.readInt(&acctId);
input.readObject(customerName);
input.readDouble(&netWorth);
input.readObject(assets);
input.readInt(reinterpret_cast<int64_t*>(×tamp));
+ return this;
}
-
CacheableStringPtr FastAssetAccount::toString() const {
char buf[102500];
sprintf(buf,
diff --git a/tests/cpp/testobject/FastAssetAccount.hpp b/tests/cpp/testobject/FastAssetAccount.hpp
index 126e247..2e0376c 100644
--- a/tests/cpp/testobject/FastAssetAccount.hpp
+++ b/tests/cpp/testobject/FastAssetAccount.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TESTOBJECT_FASTASSETACCOUNT_H_
+#define GEODE_TESTOBJECT_FASTASSETACCOUNT_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_TESTOBJECT_FASTASSETACCOUNT_H_
-#define GEODE_TESTOBJECT_FASTASSETACCOUNT_H_
-
/*
* @brief User class for testing the query functionality.
*/
@@ -70,7 +70,8 @@ class TESTOBJECT_EXPORT FastAssetAccount : public TimestampedObject {
FastAssetAccount(int index, bool encodeTimestp, int maxVal, int asstSize = 0);
virtual ~FastAssetAccount();
virtual void toData(apache::geode::client::DataOutput& output) const;
- virtual void fromData(apache::geode::client::DataInput& input);
+ virtual apache::geode::client::Serializable* fromData(
+ apache::geode::client::DataInput& input);
virtual int32_t classId() const { return 23; }
CacheableStringPtr toString() const;
diff --git a/tests/cpp/testobject/PSTObject.cpp b/tests/cpp/testobject/PSTObject.cpp
index 66b50b5..a9299cc 100644
--- a/tests/cpp/testobject/PSTObject.cpp
+++ b/tests/cpp/testobject/PSTObject.cpp
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#include "PSTObject.hpp"
#include "fwklib/GsRandom.hpp"
#include "ArrayOfByte.hpp"
@@ -40,7 +39,6 @@ PSTObject::PSTObject(int size, bool encodeKey, bool encodeTimestamp) {
}
PSTObject::~PSTObject() {}
-
void PSTObject::toData(apache::geode::client::DataOutput& output) const {
output.writeInt(static_cast<int64_t>(timestamp));
output.writeInt(static_cast<int32_t>(field1));
@@ -48,13 +46,14 @@ void PSTObject::toData(apache::geode::client::DataOutput& output) const {
output.writeObject(valueData);
}
-void PSTObject::fromData(apache::geode::client::DataInput& input) {
+apache::geode::client::Serializable* PSTObject::fromData(
+ apache::geode::client::DataInput& input) {
input.readInt(reinterpret_cast<int64_t*>(×tamp));
input.readInt(&field1);
input.read(&field2);
input.readObject(valueData);
+ return this;
}
-
CacheableStringPtr PSTObject::toString() const {
char buf[102500];
sprintf(buf,
diff --git a/tests/cpp/testobject/PSTObject.hpp b/tests/cpp/testobject/PSTObject.hpp
index 5f9c784..ccd74f2 100644
--- a/tests/cpp/testobject/PSTObject.hpp
+++ b/tests/cpp/testobject/PSTObject.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TESTOBJECT_PSTOBJECT_H_
+#define GEODE_TESTOBJECT_PSTOBJECT_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_TESTOBJECT_PSTOBJECT_H_
-#define GEODE_TESTOBJECT_PSTOBJECT_H_
-
/*
* @brief User class for testing the put functionality for object.
*/
@@ -62,7 +62,8 @@ class TESTOBJECT_EXPORT PSTObject : public TimestampedObject {
PSTObject(int size, bool encodeKey, bool encodeTimestamp);
virtual ~PSTObject();
virtual void toData(apache::geode::client::DataOutput& output) const;
- virtual void fromData(apache::geode::client::DataInput& input);
+ virtual apache::geode::client::Serializable* fromData(
+ apache::geode::client::DataInput& input);
virtual int32_t classId() const { return 0x04; }
CacheableStringPtr toString() const;
diff --git a/tests/cpp/testobject/Portfolio.cpp b/tests/cpp/testobject/Portfolio.cpp
index d78638d..4277d64 100644
--- a/tests/cpp/testobject/Portfolio.cpp
+++ b/tests/cpp/testobject/Portfolio.cpp
@@ -82,7 +82,7 @@ void Portfolio::toData(DataOutput& output) const {
output.writeBytes(arrayZeroSize, 0);
}
-void Portfolio::fromData(DataInput& input) {
+Serializable* Portfolio::fromData(DataInput& input) {
input.readInt(&ID);
input.readObject(pkid);
input.readObject(position1);
@@ -96,6 +96,7 @@ void Portfolio::fromData(DataInput& input) {
int tmp = 0;
input.readBytes(&arrayNull, &tmp);
input.readBytes(&arrayZeroSize, &tmp);
+ return this;
}
CacheableStringPtr Portfolio::toString() const {
diff --git a/tests/cpp/testobject/Portfolio.hpp b/tests/cpp/testobject/Portfolio.hpp
index d842e15..d147cfb 100644
--- a/tests/cpp/testobject/Portfolio.hpp
+++ b/tests/cpp/testobject/Portfolio.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TESTOBJECT_PORTFOLIO_H_
+#define GEODE_TESTOBJECT_PORTFOLIO_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_TESTOBJECT_PORTFOLIO_H_
-#define GEODE_TESTOBJECT_PORTFOLIO_H_
-
/*
* @brief User class for testing the put functionality for object.
*/
@@ -123,7 +123,7 @@ class TESTOBJECT_EXPORT Portfolio : public Serializable {
static Serializable* createDeserializable() { return new Portfolio(); }
virtual void toData(DataOutput& output) const;
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
virtual int32_t classId() const { return 0x03; }
CacheableStringPtr toString() const;
};
diff --git a/tests/cpp/testobject/Position.cpp b/tests/cpp/testobject/Position.cpp
index 3885a47..04a11f2 100644
--- a/tests/cpp/testobject/Position.cpp
+++ b/tests/cpp/testobject/Position.cpp
@@ -99,7 +99,8 @@ void Position::toData(apache::geode::client::DataOutput& output) const {
output.writeInt(pid);
}
-void Position::fromData(apache::geode::client::DataInput& input) {
+apache::geode::client::Serializable* Position::fromData(
+ apache::geode::client::DataInput& input) {
input.readInt(&avg20DaysVol);
input.readObject(bondRating);
input.readDouble(&convRatio);
@@ -116,6 +117,7 @@ void Position::fromData(apache::geode::client::DataInput& input) {
input.readObject(underlyer);
input.readInt(&volatility);
input.readInt(&pid);
+ return this;
}
CacheableStringPtr Position::toString() const {
diff --git a/tests/cpp/testobject/Position.hpp b/tests/cpp/testobject/Position.hpp
index bedbd13..5e91e0a 100644
--- a/tests/cpp/testobject/Position.hpp
+++ b/tests/cpp/testobject/Position.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TESTOBJECT_POSITION_H_
+#define GEODE_TESTOBJECT_POSITION_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_TESTOBJECT_POSITION_H_
-#define GEODE_TESTOBJECT_POSITION_H_
-
/*
* @brief User class for testing the put functionality for object.
*/
@@ -74,7 +74,8 @@ class TESTOBJECT_EXPORT Position : public apache::geode::client::Serializable {
Position(int32_t iForExactVal);
virtual ~Position();
virtual void toData(apache::geode::client::DataOutput& output) const;
- virtual void fromData(apache::geode::client::DataInput& input);
+ virtual apache::geode::client::Serializable* fromData(
+ apache::geode::client::DataInput& input);
virtual int32_t classId() const { return 0x02; }
CacheableStringPtr toString() const;
diff --git a/tests/cpp/testobject/TestObject1.cpp b/tests/cpp/testobject/TestObject1.cpp
index 9567bb4..fab0ee5 100644
--- a/tests/cpp/testobject/TestObject1.cpp
+++ b/tests/cpp/testobject/TestObject1.cpp
@@ -53,7 +53,7 @@ void TestObject1::toData(DataOutput& output) const {
output.writeInt(identifier);
}
-void TestObject1::fromData(DataInput& input) {
+Serializable* TestObject1::fromData(DataInput& input) {
uint8_t* bytes;
int32_t len;
input.readBytes(&bytes, &len);
@@ -61,6 +61,7 @@ void TestObject1::fromData(DataInput& input) {
delete bytes;
input.readObject(name);
input.readInt(&identifier);
+ return this;
}
Serializable* TestObject1::create() { return new TestObject1(); }
diff --git a/tests/cpp/testobject/TestObject1.hpp b/tests/cpp/testobject/TestObject1.hpp
index 85c08f3..921c8e7 100644
--- a/tests/cpp/testobject/TestObject1.hpp
+++ b/tests/cpp/testobject/TestObject1.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TESTOBJECT_TESTOBJECT1_H_
+#define GEODE_TESTOBJECT_TESTOBJECT1_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -14,11 +19,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#pragma once
-
-#ifndef GEODE_TESTOBJECT_TESTOBJECT1_H_
-#define GEODE_TESTOBJECT_TESTOBJECT1_H_
+/*
+ * TestObject1.hpp
+ *
+ * Created on: Jul 15, 2009
+ * Author: abhaware
+ */
#include <geode/GeodeCppCache.hpp>
#include <string>
@@ -48,7 +54,7 @@ class TESTOBJECT_EXPORT TestObject1 : public Cacheable {
TestObject1(std::string& str, int32_t id);
TestObject1(TestObject1& rhs);
void toData(DataOutput& output) const;
- void fromData(DataInput& input);
+ Serializable* fromData(DataInput& input);
int32_t getIdentifier() { return identifier; }
diff --git a/tests/cpp/testobject/TimestampedObject.hpp b/tests/cpp/testobject/TimestampedObject.hpp
index 0cd30ad..d12ad12 100644
--- a/tests/cpp/testobject/TimestampedObject.hpp
+++ b/tests/cpp/testobject/TimestampedObject.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TESTOBJECT_TIMESTAMPEDOBJECT_H_
+#define GEODE_TESTOBJECT_TIMESTAMPEDOBJECT_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -15,11 +20,6 @@
* limitations under the License.
*/
-#pragma once
-
-#ifndef GEODE_TESTOBJECT_TIMESTAMPEDOBJECT_H_
-#define GEODE_TESTOBJECT_TIMESTAMPEDOBJECT_H_
-
#include <geode/GeodeCppCache.hpp>
#ifdef _WIN32
@@ -42,7 +42,9 @@ class TESTOBJECT_EXPORT TimestampedObject
public:
virtual uint64_t getTimestamp() { return 0; }
virtual void resetTimestamp() {}
- virtual void fromData(apache::geode::client::DataInput& input) {}
+ virtual Serializable* fromData(apache::geode::client::DataInput& input) {
+ return this;
+ }
virtual void toData(apache::geode::client::DataOutput& output) const {}
virtual int32_t classId() const { return 0; }
virtual uint32_t objectSize() const { return 0; }
diff --git a/tests/cpp/testobject/VariousPdxTypes.cpp b/tests/cpp/testobject/VariousPdxTypes.cpp
index daa172d..52d7f7b 100644
--- a/tests/cpp/testobject/VariousPdxTypes.cpp
+++ b/tests/cpp/testobject/VariousPdxTypes.cpp
@@ -917,7 +917,7 @@ void PdxInsideIGeodeSerializable::toData(DataOutput &output) const {
output.writeInt(m_i4);
}
-void PdxInsideIGeodeSerializable::fromData(DataInput &input) {
+Serializable *PdxInsideIGeodeSerializable::fromData(DataInput &input) {
input.readInt(&m_i1);
input.readObject(m_npdx);
input.readInt(&m_i2);
@@ -926,6 +926,7 @@ void PdxInsideIGeodeSerializable::fromData(DataInput &input) {
input.readObject(m_pdx3);
input.readInt(&m_i3);
input.readInt(&m_i4);
-}
+ return this;
+}
} /* namespace PdxTests */
diff --git a/tests/cpp/testobject/VariousPdxTypes.hpp b/tests/cpp/testobject/VariousPdxTypes.hpp
index 0e313ce..80c24d8 100644
--- a/tests/cpp/testobject/VariousPdxTypes.hpp
+++ b/tests/cpp/testobject/VariousPdxTypes.hpp
@@ -1,3 +1,8 @@
+#pragma once
+
+#ifndef GEODE_TESTOBJECT_VARIOUSPDXTYPES_H_
+#define GEODE_TESTOBJECT_VARIOUSPDXTYPES_H_
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -14,11 +19,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
- #pragma once
-
-#ifndef GEODE_TESTOBJECT_VARIOUSPDXTYPES_H_
-#define GEODE_TESTOBJECT_VARIOUSPDXTYPES_H_
+/*
+ * VariousPdxTypes.hpp
+ *
+ * Created on: Feb 10, 2012
+ * Author: npatel
+ */
#include <geode/PdxSerializable.hpp>
#include <geode/GeodeCppCache.hpp>
@@ -514,7 +520,7 @@ class TESTOBJECT_EXPORT PdxInsideIGeodeSerializable : public Serializable {
CacheableStringPtr toString() const;
- virtual void fromData(DataInput& input);
+ virtual Serializable* fromData(DataInput& input);
virtual void toData(DataOutput& output) const;
--
To stop receiving notification emails like this one, please contact
['"commits@geode.apache.org" <co...@geode.apache.org>'].