http://git-wip-us.apache.org/repos/asf/geode-native/blob/6027574a/src/clicache/src/Serializable.cpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/Serializable.cpp b/src/clicache/src/Serializable.cpp index a6ca57c..34ed0c7 100644 --- a/src/clicache/src/Serializable.cpp +++ b/src/clicache/src/Serializable.cpp @@ -15,23 +15,20 @@ * limitations under the License. */ +#include "begin_native.hpp" #include <SerializationRegistry.hpp> +#include "end_native.hpp" + +#include <msclr/lock.h> -//#include "geode_includes.hpp" #include "Serializable.hpp" #include "impl/DelegateWrapper.hpp" #include "DataOutput.hpp" #include "DataInput.hpp" -//#include "CacheableString.hpp" #include "CacheableStringArray.hpp" -//#include "Log.hpp" -// #include "CacheableBuiltins.hpp" -//#include "ExceptionTypes.hpp" #include "impl/SafeConvert.hpp" -//#include <GeodeTypeIds.hpp> -//#include "CacheableHashMap.hpp" #include "CacheableHashTable.hpp" #include "Struct.hpp" #include "CacheableUndefined.hpp" @@ -46,12 +43,9 @@ #include "IPdxSerializer.hpp" #include "impl/DotNetTypes.hpp" #pragma warning(disable:4091) -#include <msclr/lock.h> + using namespace System::Reflection; using namespace System::Reflection::Emit; -//#include "CacheableArrayList.hpp" -//#include "CacheableVector.hpp" -//#include "impl/PdxManagedCacheableKey.hpp" using namespace System; using namespace System::Collections::Generic; @@ -64,6 +58,7 @@ namespace Apache { namespace Client { + namespace native = apache::geode::client; void Apache::Geode::Client::Serializable::ToData( Apache::Geode::Client::DataOutput^ output) @@ -71,13 +66,21 @@ namespace Apache if (output->IsManagedObject()) { output->WriteBytesToUMDataOutput(); } - apache::geode::client::DataOutput* nativeOutput = - GetNativePtr<apache::geode::client::DataOutput>(output); - NativePtr->toData(*nativeOutput); + try + { + auto nativeOutput = output->GetNative(); + m_nativeptr->get()->toData(*nativeOutput); + } + finally + { + GC::KeepAlive(output); + GC::KeepAlive(m_nativeptr); + } if (output->IsManagedObject()) { output->SetBuffer(); } } + Apache::Geode::Client::IGeodeSerializable^ Apache::Geode::Client::Serializable::FromData( Apache::Geode::Client::DataInput^ input) @@ -85,41 +88,75 @@ namespace Apache if (input->IsManagedObject()) { input->AdvanceUMCursor(); } - apache::geode::client::DataInput* nativeInput = - GetNativePtr<apache::geode::client::DataInput>(input); - AssignSP(NativePtr->fromData(*nativeInput)); - if (input->IsManagedObject()) { - input->SetBuffer(); + auto* nativeInput = input->GetNative(); + + try + { + auto temp = m_nativeptr->get()->fromData(*nativeInput); + if (temp != m_nativeptr->get()) + { + m_nativeptr->get_shared_ptr().reset(temp); + } + + if (input->IsManagedObject()) { + input->SetBuffer(); + } + return this; + } + finally + { + GC::KeepAlive(m_nativeptr); } - return this; } System::UInt32 Apache::Geode::Client::Serializable::ObjectSize::get() { - return NativePtr->objectSize(); + try + { + return m_nativeptr->get()->objectSize(); + } + finally + { + GC::KeepAlive(m_nativeptr); + } } System::UInt32 Apache::Geode::Client::Serializable::ClassId::get() { - int8_t typeId = NativePtr->typeId(); - if (typeId == apache::geode::client::GeodeTypeIdsImpl::CacheableUserData || - typeId == apache::geode::client::GeodeTypeIdsImpl::CacheableUserData2 || - typeId == apache::geode::client::GeodeTypeIdsImpl::CacheableUserData4) { - return NativePtr->classId(); + try + { + auto n = m_nativeptr->get(); + int8_t typeId = n->typeId(); + if (typeId == native::GeodeTypeIdsImpl::CacheableUserData || + typeId == native::GeodeTypeIdsImpl::CacheableUserData2 || + typeId == native::GeodeTypeIdsImpl::CacheableUserData4) { + return n->classId(); + } + else { + return typeId + 0x80000000 + (0x20000000 * n->DSFID()); + } } - else { - return typeId + 0x80000000 + (0x20000000 * NativePtr->DSFID()); + finally + { + GC::KeepAlive(m_nativeptr); } } String^ Apache::Geode::Client::Serializable::ToString() { - apache::geode::client::CacheableStringPtr& cStr = NativePtr->toString(); - if (cStr->isWideString()) { - return ManagedString::Get(cStr->asWChar()); + try + { + auto cStr = m_nativeptr->get()->toString(); + if (cStr->isWideString()) { + return ManagedString::Get(cStr->asWChar()); + } + else { + return ManagedString::Get(cStr->asChar()); + } } - else { - return ManagedString::Get(cStr->asChar()); + finally + { + GC::KeepAlive(m_nativeptr); } } @@ -220,26 +257,26 @@ namespace Apache System::Int32 Serializable::GetPDXIdForType(const char* poolName, IGeodeSerializable^ pdxType) { - apache::geode::client::CacheablePtr kPtr(SafeMSerializableConvertGeneric(pdxType)); - return apache::geode::client::SerializationRegistry::GetPDXIdForType(poolName, kPtr); + native::CacheablePtr kPtr(SafeMSerializableConvertGeneric(pdxType)); + return native::SerializationRegistry::GetPDXIdForType(poolName, kPtr); } IGeodeSerializable^ Serializable::GetPDXTypeById(const char* poolName, System::Int32 typeId) { - SerializablePtr sPtr = apache::geode::client::SerializationRegistry::GetPDXTypeById(poolName, typeId); - return SafeUMSerializableConvertGeneric(sPtr.get()); + SerializablePtr sPtr = native::SerializationRegistry::GetPDXTypeById(poolName, typeId); + return SafeUMSerializableConvertGeneric(sPtr); } int Serializable::GetEnumValue(Internal::EnumInfo^ ei) { - apache::geode::client::CacheablePtr kPtr(SafeMSerializableConvertGeneric(ei)); - return apache::geode::client::SerializationRegistry::GetEnumValue(kPtr); + native::CacheablePtr kPtr(SafeMSerializableConvertGeneric(ei)); + return native::SerializationRegistry::GetEnumValue(kPtr); } Internal::EnumInfo^ Serializable::GetEnum(int val) { - SerializablePtr sPtr = apache::geode::client::SerializationRegistry::GetEnum(val); - return (Internal::EnumInfo^)SafeUMSerializableConvertGeneric(sPtr.get()); + SerializablePtr sPtr = native::SerializationRegistry::GetEnum(val); + return (Internal::EnumInfo^)SafeUMSerializableConvertGeneric(sPtr); } void Serializable::RegisterPdxType(PdxTypeFactoryMethod^ creationMethod) @@ -478,13 +515,13 @@ namespace Apache { if (!appDomainEnable) { - apache::geode::client::SerializationRegistry::addType(apache::geode::client::GeodeTypeIdsImpl::PDX, - &apache::geode::client::PdxManagedCacheableKey::CreateDeserializable); + native::SerializationRegistry::addType(native::GeodeTypeIdsImpl::PDX, + &native::PdxManagedCacheableKey::CreateDeserializable); } else { - apache::geode::client::SerializationRegistry::addType(apache::geode::client::GeodeTypeIdsImpl::PDX, - &apache::geode::client::PdxManagedCacheableKeyBytes::CreateDeserializable); + native::SerializationRegistry::addType(native::GeodeTypeIdsImpl::PDX, + &native::PdxManagedCacheableKeyBytes::CreateDeserializable); } } @@ -518,7 +555,7 @@ namespace Apache _GF_MG_EXCEPTION_TRY2 - apache::geode::client::Serializable::registerType((apache::geode::client::TypeFactoryMethod) + native::Serializable::registerType((native::TypeFactoryMethod) System::Runtime::InteropServices::Marshal:: GetFunctionPointerForDelegate(nativeDelegate).ToPointer()); @@ -556,21 +593,21 @@ namespace Apache { if (tmp->ClassId < 0xa0000000) { - apache::geode::client::SerializationRegistry::addType(typeId, - (apache::geode::client::TypeFactoryMethod)System::Runtime::InteropServices:: + native::SerializationRegistry::addType(typeId, + (native::TypeFactoryMethod)System::Runtime::InteropServices:: Marshal::GetFunctionPointerForDelegate( nativeDelegate).ToPointer()); } else {//special case for CacheableUndefined type - apache::geode::client::SerializationRegistry::addType2(typeId, - (apache::geode::client::TypeFactoryMethod)System::Runtime::InteropServices:: + native::SerializationRegistry::addType2(typeId, + (native::TypeFactoryMethod)System::Runtime::InteropServices:: Marshal::GetFunctionPointerForDelegate( nativeDelegate).ToPointer()); } } - catch (apache::geode::client::IllegalStateException&) + catch (native::IllegalStateException&) { //ignore it as this is internal only } @@ -581,7 +618,7 @@ namespace Apache BuiltInDelegatesGeneric->Remove(typeId); _GF_MG_EXCEPTION_TRY2 - apache::geode::client::SerializationRegistry::removeType(typeId); + native::SerializationRegistry::removeType(typeId); _GF_MG_EXCEPTION_CATCH_ALL2 } @@ -609,7 +646,7 @@ namespace Apache } generic<class TValue> - TValue Serializable::GetManagedValueGeneric(apache::geode::client::SerializablePtr val) + TValue Serializable::GetManagedValueGeneric(native::SerializablePtr val) { if (val == nullptr) { @@ -620,7 +657,7 @@ namespace Apache //Log::Debug("Serializable::GetManagedValueGeneric typeid = " + typeId); switch (typeId) { - case apache::geode::client::GeodeTypeIds::CacheableByte: + case native::GeodeTypeIds::CacheableByte: { return (TValue)(int8_t)safe_cast<int8_t>(Serializable::getByte(val)); /* if (TValue::typeid == System::SByte::typeid) { @@ -631,31 +668,31 @@ namespace Apache } return safe_cast<TValue>(Serializable::getByte(val));*/ } - case apache::geode::client::GeodeTypeIds::CacheableBoolean: + case native::GeodeTypeIds::CacheableBoolean: { return safe_cast<TValue>(Serializable::getBoolean(val)); } - case apache::geode::client::GeodeTypeIds::CacheableWideChar: + case native::GeodeTypeIds::CacheableWideChar: { return safe_cast<TValue>(Serializable::getChar(val)); } - case apache::geode::client::GeodeTypeIds::CacheableDouble: + case native::GeodeTypeIds::CacheableDouble: { return safe_cast<TValue>(Serializable::getDouble(val)); } - case apache::geode::client::GeodeTypeIds::CacheableASCIIString: - case apache::geode::client::GeodeTypeIds::CacheableASCIIStringHuge: - case apache::geode::client::GeodeTypeIds::CacheableString: - case apache::geode::client::GeodeTypeIds::CacheableStringHuge: + case native::GeodeTypeIds::CacheableASCIIString: + case native::GeodeTypeIds::CacheableASCIIStringHuge: + case native::GeodeTypeIds::CacheableString: + case native::GeodeTypeIds::CacheableStringHuge: { //TODO: need to look all strings types return safe_cast<TValue>(Serializable::getASCIIString(val)); } - case apache::geode::client::GeodeTypeIds::CacheableFloat: + case native::GeodeTypeIds::CacheableFloat: { return safe_cast<TValue>(Serializable::getFloat(val)); } - case apache::geode::client::GeodeTypeIds::CacheableInt16: + case native::GeodeTypeIds::CacheableInt16: { /* if (TValue::typeid == System::Int16::typeid) { return (TValue)(System::Int16)safe_cast<System::Int16>(Serializable::getInt16(val)); @@ -665,7 +702,7 @@ namespace Apache }*/ return safe_cast<TValue>(Serializable::getInt16(val)); } - case apache::geode::client::GeodeTypeIds::CacheableInt32: + case native::GeodeTypeIds::CacheableInt32: { /* if (TValue::typeid == System::Int32::typeid) { return (TValue)(System::Int32)safe_cast<System::Int32>(Serializable::getInt32(val)); @@ -675,7 +712,7 @@ namespace Apache } */ return safe_cast<TValue>(Serializable::getInt32(val)); } - case apache::geode::client::GeodeTypeIds::CacheableInt64: + case native::GeodeTypeIds::CacheableInt64: { /*if (TValue::typeid == System::Int64::typeid) { return (TValue)(System::Int64)safe_cast<System::Int64>(Serializable::getInt64(val)); @@ -685,27 +722,27 @@ namespace Apache }*/ return safe_cast<TValue>(Serializable::getInt64(val)); } - case apache::geode::client::GeodeTypeIds::CacheableDate: + case native::GeodeTypeIds::CacheableDate: { //TODO:: Apache::Geode::Client::CacheableDate^ ret = static_cast<Apache::Geode::Client::CacheableDate ^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableDate^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableDate^>(val)); System::DateTime dt(ret->Value.Ticks); return safe_cast<TValue>(dt); } - case apache::geode::client::GeodeTypeIdsImpl::CacheableUserData: - case apache::geode::client::GeodeTypeIdsImpl::CacheableUserData2: - case apache::geode::client::GeodeTypeIdsImpl::CacheableUserData4: + case native::GeodeTypeIdsImpl::CacheableUserData: + case native::GeodeTypeIdsImpl::CacheableUserData2: + case native::GeodeTypeIdsImpl::CacheableUserData4: { //TODO::split - IGeodeSerializable^ ret = SafeUMSerializableConvertGeneric(val.get()); + IGeodeSerializable^ ret = SafeUMSerializableConvertGeneric(val); return safe_cast<TValue>(ret); //return TValue(); } - case apache::geode::client::GeodeTypeIdsImpl::PDX: + case native::GeodeTypeIdsImpl::PDX: { - IPdxSerializable^ ret = SafeUMSerializablePDXConvert(val.get()); + IPdxSerializable^ ret = SafeUMSerializablePDXConvert(val); PdxWrapper^ pdxWrapper = dynamic_cast<PdxWrapper^>(ret); @@ -716,52 +753,52 @@ namespace Apache return safe_cast<TValue>(ret); } - case apache::geode::client::GeodeTypeIds::CacheableBytes: + case native::GeodeTypeIds::CacheableBytes: { Apache::Geode::Client::CacheableBytes^ ret = safe_cast<Apache::Geode::Client::CacheableBytes ^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableBytes^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableBytes^>(val)); return safe_cast<TValue>(ret->Value); } - case apache::geode::client::GeodeTypeIds::CacheableDoubleArray: + case native::GeodeTypeIds::CacheableDoubleArray: { Apache::Geode::Client::CacheableDoubleArray^ ret = safe_cast<Apache::Geode::Client::CacheableDoubleArray ^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableDoubleArray^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableDoubleArray^>(val)); return safe_cast<TValue>(ret->Value); } - case apache::geode::client::GeodeTypeIds::CacheableFloatArray: + case native::GeodeTypeIds::CacheableFloatArray: { Apache::Geode::Client::CacheableFloatArray^ ret = safe_cast<Apache::Geode::Client::CacheableFloatArray^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableFloatArray^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableFloatArray^>(val)); return safe_cast<TValue>(ret->Value); } - case apache::geode::client::GeodeTypeIds::CacheableInt16Array: + case native::GeodeTypeIds::CacheableInt16Array: { Apache::Geode::Client::CacheableInt16Array^ ret = safe_cast<Apache::Geode::Client::CacheableInt16Array^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableInt16Array^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableInt16Array^>(val)); return safe_cast<TValue>(ret->Value); } - case apache::geode::client::GeodeTypeIds::CacheableInt32Array: + case native::GeodeTypeIds::CacheableInt32Array: { Apache::Geode::Client::CacheableInt32Array^ ret = safe_cast<Apache::Geode::Client::CacheableInt32Array^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableInt32Array^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableInt32Array^>(val)); return safe_cast<TValue>(ret->Value); } - case apache::geode::client::GeodeTypeIds::CacheableInt64Array: + case native::GeodeTypeIds::CacheableInt64Array: { Apache::Geode::Client::CacheableInt64Array^ ret = safe_cast<Apache::Geode::Client::CacheableInt64Array^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableInt64Array^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableInt64Array^>(val)); return safe_cast<TValue>(ret->Value); } - case apache::geode::client::GeodeTypeIds::CacheableStringArray: + case native::GeodeTypeIds::CacheableStringArray: { Apache::Geode::Client::CacheableStringArray^ ret = safe_cast<Apache::Geode::Client::CacheableStringArray^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableStringArray^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableStringArray^>(val)); /* array<String^>^ str = gcnew array<String^>(ret->GetValues()->Length); for(int i=0; i<ret->GetValues()->Length; i++ ) { @@ -770,125 +807,125 @@ namespace Apache return safe_cast<TValue>(ret->GetValues()); } - case apache::geode::client::GeodeTypeIds::CacheableArrayList://Ilist generic + case native::GeodeTypeIds::CacheableArrayList://Ilist generic { Apache::Geode::Client::CacheableArrayList^ ret = safe_cast<Apache::Geode::Client::CacheableArrayList^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableArrayList^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableArrayList^>(val)); return safe_cast<TValue>(ret->Value); } - case apache::geode::client::GeodeTypeIds::CacheableLinkedList://LinkedList generic + case native::GeodeTypeIds::CacheableLinkedList://LinkedList generic { Apache::Geode::Client::CacheableLinkedList^ ret = safe_cast<Apache::Geode::Client::CacheableLinkedList^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableLinkedList^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableLinkedList^>(val)); return safe_cast<TValue>(ret->Value); } - case apache::geode::client::GeodeTypeIds::CacheableHashTable://collection::hashtable + case native::GeodeTypeIds::CacheableHashTable://collection::hashtable { Apache::Geode::Client::CacheableHashTable^ ret = safe_cast<Apache::Geode::Client::CacheableHashTable^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableHashTable^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableHashTable^>(val)); return safe_cast<TValue>(ret->Value); } - case apache::geode::client::GeodeTypeIds::CacheableHashMap://generic dictionary + case native::GeodeTypeIds::CacheableHashMap://generic dictionary { Apache::Geode::Client::CacheableHashMap^ ret = safe_cast<Apache::Geode::Client::CacheableHashMap^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableHashMap^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableHashMap^>(val)); return safe_cast<TValue>(ret->Value); } - case apache::geode::client::GeodeTypeIds::CacheableIdentityHashMap: + case native::GeodeTypeIds::CacheableIdentityHashMap: { Apache::Geode::Client::CacheableIdentityHashMap^ ret = static_cast<Apache::Geode::Client::CacheableIdentityHashMap^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableIdentityHashMap^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableIdentityHashMap^>(val)); return safe_cast<TValue>(ret->Value); } - case apache::geode::client::GeodeTypeIds::CacheableHashSet://no need of it, default case should work + case native::GeodeTypeIds::CacheableHashSet://no need of it, default case should work { Apache::Geode::Client::CacheableHashSet^ ret = static_cast<Apache::Geode::Client::CacheableHashSet^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableHashSet^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableHashSet^>(val)); return safe_cast<TValue>(ret); } - case apache::geode::client::GeodeTypeIds::CacheableLinkedHashSet://no need of it, default case should work + case native::GeodeTypeIds::CacheableLinkedHashSet://no need of it, default case should work { Apache::Geode::Client::CacheableLinkedHashSet^ ret = static_cast<Apache::Geode::Client::CacheableLinkedHashSet^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableLinkedHashSet^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableLinkedHashSet^>(val)); return safe_cast<TValue>(ret); } - case apache::geode::client::GeodeTypeIds::CacheableFileName: + case native::GeodeTypeIds::CacheableFileName: { Apache::Geode::Client::CacheableFileName^ ret = static_cast<Apache::Geode::Client::CacheableFileName^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableFileName^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableFileName^>(val)); return safe_cast<TValue>(ret); } - case apache::geode::client::GeodeTypeIds::CacheableObjectArray: + case native::GeodeTypeIds::CacheableObjectArray: { Apache::Geode::Client::CacheableObjectArray^ ret = static_cast<Apache::Geode::Client::CacheableObjectArray^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableObjectArray^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableObjectArray^>(val)); return safe_cast<TValue>(ret); } - case apache::geode::client::GeodeTypeIds::CacheableVector://collection::arraylist + case native::GeodeTypeIds::CacheableVector://collection::arraylist { Apache::Geode::Client::CacheableVector^ ret = static_cast<Apache::Geode::Client::CacheableVector^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableVector^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableVector^>(val)); return safe_cast<TValue>(ret->Value); } - case apache::geode::client::GeodeTypeIds::CacheableUndefined: + case native::GeodeTypeIds::CacheableUndefined: { Apache::Geode::Client::CacheableUndefined^ ret = static_cast<Apache::Geode::Client::CacheableUndefined^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableUndefined^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableUndefined^>(val)); return safe_cast<TValue>(ret); } - case apache::geode::client::GeodeTypeIds::Struct: + case native::GeodeTypeIds::Struct: { - return safe_cast<TValue>(Apache::Geode::Client::Struct::Create(val.get())); + return safe_cast<TValue>(Apache::Geode::Client::Struct::Create(val)); } - case apache::geode::client::GeodeTypeIds::CacheableStack: + case native::GeodeTypeIds::CacheableStack: { Apache::Geode::Client::CacheableStack^ ret = static_cast<Apache::Geode::Client::CacheableStack^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableStack^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableStack^>(val)); return safe_cast<TValue>(ret->Value); } case 7: //GeodeClassIds::CacheableManagedObject { Apache::Geode::Client::CacheableObject^ ret = static_cast<Apache::Geode::Client::CacheableObject^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableObject^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableObject^>(val)); return safe_cast<TValue>(ret); } case 8://GeodeClassIds::CacheableManagedObjectXml { Apache::Geode::Client::CacheableObjectXml^ ret = static_cast<Apache::Geode::Client::CacheableObjectXml^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableObjectXml^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CacheableObjectXml^>(val)); return safe_cast<TValue>(ret); } /* TODO: replace with IDictionary<K, V> - case apache::geode::client::GeodeTypeIds::Properties: + case native::GeodeTypeIds::Properties: { Apache::Geode::Client::Properties^ ret = safe_cast<Apache::Geode::Client::Properties^> - ( SafeGenericUMSerializableConvert<Apache::Geode::Client::Properties^>(val.get())); + ( SafeGenericUMSerializableConvert<Apache::Geode::Client::Properties^>(val)); return safe_cast<TValue>(ret); }*/ - case apache::geode::client::GeodeTypeIds::BooleanArray: + case native::GeodeTypeIds::BooleanArray: { Apache::Geode::Client::BooleanArray^ ret = safe_cast<Apache::Geode::Client::BooleanArray^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::BooleanArray^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::BooleanArray^>(val)); return safe_cast<TValue>(ret->Value); } - case apache::geode::client::GeodeTypeIds::CharArray: + case native::GeodeTypeIds::CharArray: { Apache::Geode::Client::CharArray^ ret = safe_cast<Apache::Geode::Client::CharArray^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::CharArray^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::CharArray^>(val)); return safe_cast<TValue>(ret->Value); } case 0://UserFunctionExecutionException unregistered { Apache::Geode::Client::UserFunctionExecutionException^ ret = static_cast<Apache::Geode::Client::UserFunctionExecutionException^> - (SafeGenericUMSerializableConvert<Apache::Geode::Client::UserFunctionExecutionException^>(val.get())); + (SafeGenericUMSerializableConvert<Apache::Geode::Client::UserFunctionExecutionException^>(val)); return safe_cast<TValue>(ret); } default: @@ -898,7 +935,7 @@ namespace Apache } generic<class TKey> - apache::geode::client::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric(TKey key) + native::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric(TKey key) { //System::Type^ managedType = TKey::typeid; if (key != nullptr) { @@ -909,7 +946,7 @@ namespace Apache } generic<class TKey> - apache::geode::client::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric(TKey key, bool isAciiChar) + native::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric(TKey key, bool isAciiChar) { //System::Type^ managedType = TKey::typeid; if (key != nullptr) { @@ -1025,251 +1062,173 @@ namespace Apache bool Serializable::IsObjectAndPdxSerializerRegistered(String^ className) { return PdxSerializer != nullptr; - // return CreateObject(className) != nullptr; - /* if(PdxSerializer != nullptr) - { - FactoryMethod^ retVal = nullptr; - PdxSerializerObjectDelegateMap->TryGetValue(className, retVal); - return retVal != nullptr; - }*/ - //return false; } generic<class TKey> - apache::geode::client::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric( + native::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric( Type^ managedType, TKey key) { return GetUnmanagedValueGeneric(managedType, key, false); } generic<class TKey> - apache::geode::client::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric( + native::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric( Type^ managedType, TKey key, bool isAsciiChar) { Byte typeId = Apache::Geode::Client::Serializable::GetManagedTypeMappingGeneric(managedType); switch (typeId) { - case apache::geode::client::GeodeTypeIds::CacheableByte: { + case native::GeodeTypeIds::CacheableByte: { return Serializable::getCacheableByte((SByte)key); - /* if( managedType == System::SByte::typeid ) - { - return Serializable::getCacheableByte((SByte)key); - } - else - { - return Serializable::getCacheableByte((Byte)key); - }*/ } - case apache::geode::client::GeodeTypeIds::CacheableBoolean: + case native::GeodeTypeIds::CacheableBoolean: return Serializable::getCacheableBoolean((bool)key); - case apache::geode::client::GeodeTypeIds::CacheableWideChar: + case native::GeodeTypeIds::CacheableWideChar: return Serializable::getCacheableWideChar((Char)key); - case apache::geode::client::GeodeTypeIds::CacheableDouble: + case native::GeodeTypeIds::CacheableDouble: return Serializable::getCacheableDouble((double)key); - case apache::geode::client::GeodeTypeIds::CacheableASCIIString: { + case native::GeodeTypeIds::CacheableASCIIString: { if (isAsciiChar) return Serializable::getCacheableASCIIString2((String^)key); else return Serializable::getCacheableASCIIString((String^)key); } - case apache::geode::client::GeodeTypeIds::CacheableFloat: + case native::GeodeTypeIds::CacheableFloat: return Serializable::getCacheableFloat((float)key); - case apache::geode::client::GeodeTypeIds::CacheableInt16: { - /*if( managedType == System::Int16::typeid ) - { - return Serializable::getCacheableInt16((System::Int16)key); - } - else - { - return Serializable::getCacheableInt16((System::UInt16)key); - }*/ + case native::GeodeTypeIds::CacheableInt16: { return Serializable::getCacheableInt16((System::Int16)key); } - case apache::geode::client::GeodeTypeIds::CacheableInt32: { - /* if( managedType == System::Int32::typeid ) - { - return Serializable::getCacheableInt32((System::Int32)key); - } - else - { - return Serializable::getCacheableInt32((System::Int32)key); - }*/ + case native::GeodeTypeIds::CacheableInt32: { return Serializable::getCacheableInt32((System::Int32)key); } - case apache::geode::client::GeodeTypeIds::CacheableInt64: { - /*if( managedType == System::Int64::typeid ) - { - return Serializable::getCacheableInt64((System::Int64)key); - } - else - { - return Serializable::getCacheableInt64((System::UInt64)key); - }*/ + case native::GeodeTypeIds::CacheableInt64: { return Serializable::getCacheableInt64((System::Int64)key); } - case apache::geode::client::GeodeTypeIds::CacheableBytes: + case native::GeodeTypeIds::CacheableBytes: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableBytes::Create((array<Byte>^)key))); - return kPtr; - /*if( managedType == Type::GetType("System.Byte[]") ) { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableBytes::Create((array<Byte>^)key))); - return kPtr; - } - else { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableBytes::Create(getSByteArray((array<SByte>^)key)))); - return kPtr; - }*/ + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableBytes::Create((array<Byte>^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableDoubleArray: + case native::GeodeTypeIds::CacheableDoubleArray: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableDoubleArray::Create((array<Double>^)key))); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableDoubleArray::Create((array<Double>^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableFloatArray: + case native::GeodeTypeIds::CacheableFloatArray: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableFloatArray::Create((array<float>^)key))); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableFloatArray::Create((array<float>^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableInt16Array: + case native::GeodeTypeIds::CacheableInt16Array: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt16Array::Create((array<Int16>^)key))); - return kPtr; - /* if( managedType == Type::GetType("System.Int16[]") ) { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt16Array::Create((array<Int16>^)key))); - return kPtr; - } - else { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt16Array::Create(getInt16Array((array<System::UInt16>^)key)))); - return kPtr; - } */ + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt16Array::Create((array<Int16>^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableInt32Array: + case native::GeodeTypeIds::CacheableInt32Array: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt32Array::Create((array<Int32>^)key))); - return kPtr; - /* if( managedType == Type::GetType("System.Int32[]") ) { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt32Array::Create((array<Int32>^)key))); - return kPtr; - } - else { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt32Array::Create(getInt32Array((array<System::UInt32>^)key)))); - return kPtr; - } */ + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt32Array::Create((array<Int32>^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableInt64Array: + case native::GeodeTypeIds::CacheableInt64Array: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt64Array::Create((array<Int64>^)key))); - return kPtr; - /*if( managedType == Type::GetType("System.Int64[]") ) { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt64Array::Create((array<Int64>^)key))); - return kPtr; - } - else { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt64Array::Create(getInt64Array((array<System::UInt64>^)key)))); - return kPtr; - } */ + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt64Array::Create((array<Int64>^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableStringArray: + case native::GeodeTypeIds::CacheableStringArray: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableStringArray::Create((array<String^>^)key))); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableStringArray::Create((array<String^>^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableFileName: + case native::GeodeTypeIds::CacheableFileName: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)(Apache::Geode::Client::CacheableFileName^)key)); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)(Apache::Geode::Client::CacheableFileName^)key)); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableHashTable://collection::hashtable + case native::GeodeTypeIds::CacheableHashTable://collection::hashtable { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableHashTable::Create((System::Collections::Hashtable^)key))); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableHashTable::Create((System::Collections::Hashtable^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableHashMap://generic dictionary + case native::GeodeTypeIds::CacheableHashMap://generic dictionary { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableHashMap::Create((System::Collections::IDictionary^)key))); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableHashMap::Create((System::Collections::IDictionary^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableVector://collection::arraylist + case native::GeodeTypeIds::CacheableVector://collection::arraylist { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)CacheableVector::Create((System::Collections::IList^)key))); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)CacheableVector::Create((System::Collections::IList^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableArrayList://generic ilist + case native::GeodeTypeIds::CacheableArrayList://generic ilist { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableArrayList::Create((System::Collections::IList^)key))); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableArrayList::Create((System::Collections::IList^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableLinkedList://generic linked list + case native::GeodeTypeIds::CacheableLinkedList://generic linked list { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableLinkedList::Create((System::Collections::Generic::LinkedList<Object^>^)key))); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableLinkedList::Create((System::Collections::Generic::LinkedList<Object^>^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableStack: + case native::GeodeTypeIds::CacheableStack: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert(Apache::Geode::Client::CacheableStack::Create((System::Collections::ICollection^)key))); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert(Apache::Geode::Client::CacheableStack::Create((System::Collections::ICollection^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case 7: //GeodeClassIds::CacheableManagedObject { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableObject^)key)); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableObject^)key)); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case 8://GeodeClassIds::CacheableManagedObjectXml { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableObjectXml^)key)); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableObjectXml^)key)); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableObjectArray: + case native::GeodeTypeIds::CacheableObjectArray: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableObjectArray^)key)); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableObjectArray^)key)); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableIdentityHashMap: + case native::GeodeTypeIds::CacheableIdentityHashMap: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert(Apache::Geode::Client::CacheableIdentityHashMap::Create((System::Collections::IDictionary^)key))); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert(Apache::Geode::Client::CacheableIdentityHashMap::Create((System::Collections::IDictionary^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableHashSet://no need of it, default case should work + case native::GeodeTypeIds::CacheableHashSet://no need of it, default case should work { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableHashSet^)key)); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableHashSet^)key)); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableLinkedHashSet://no need of it, default case should work + case native::GeodeTypeIds::CacheableLinkedHashSet://no need of it, default case should work { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableLinkedHashSet^)key)); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableLinkedHashSet^)key)); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CacheableDate: + case native::GeodeTypeIds::CacheableDate: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableDate::Create((System::DateTime)key))); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableDate::Create((System::DateTime)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::BooleanArray: + case native::GeodeTypeIds::BooleanArray: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::BooleanArray::Create((array<bool>^)key))); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::BooleanArray::Create((array<bool>^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } - case apache::geode::client::GeodeTypeIds::CharArray: + case native::GeodeTypeIds::CharArray: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CharArray::Create((array<Char>^)key))); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CharArray::Create((array<Char>^)key))); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } default: { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert(key)); - /*IGeodeSerializable^ ct = safe_cast<IGeodeSerializable^>(key); - if(ct != nullptr) { - apache::geode::client::CacheablePtr kPtr(SafeGenericMSerializableConvert(ct)); - return kPtr; - }*/ - //throw gcnew System::Exception("not found typeid"); - return kPtr; + native::CacheablePtr kPtr(SafeGenericMSerializableConvert(key)); + return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } } } // - String^ Serializable::GetString(apache::geode::client::CacheableStringPtr cStr)//apache::geode::client::CacheableString* + String^ Serializable::GetString(native::CacheableStringPtr cStr)//native::CacheableString* { if (cStr == nullptr) { return nullptr; @@ -1285,196 +1244,196 @@ namespace Apache // These are the new static methods to get/put data from c++ //byte - Byte Serializable::getByte(apache::geode::client::SerializablePtr nativeptr) + Byte Serializable::getByte(native::SerializablePtr nativeptr) { - apache::geode::client::CacheableByte* ci = static_cast<apache::geode::client::CacheableByte*>(nativeptr.get()); + native::CacheableByte* ci = static_cast<native::CacheableByte*>(nativeptr.get()); return ci->value(); } - apache::geode::client::CacheableKeyPtr Serializable::getCacheableByte(SByte val) + native::CacheableKeyPtr Serializable::getCacheableByte(SByte val) { - return apache::geode::client::CacheableByte::create(val); + return native::CacheableByte::create(val); } //boolean - bool Serializable::getBoolean(apache::geode::client::SerializablePtr nativeptr) + bool Serializable::getBoolean(native::SerializablePtr nativeptr) { - apache::geode::client::CacheableBoolean* ci = static_cast<apache::geode::client::CacheableBoolean*>(nativeptr.get()); + native::CacheableBoolean* ci = static_cast<native::CacheableBoolean*>(nativeptr.get()); return ci->value(); } - apache::geode::client::CacheableKeyPtr Serializable::getCacheableBoolean(bool val) + native::CacheableKeyPtr Serializable::getCacheableBoolean(bool val) { - return apache::geode::client::CacheableBoolean::create(val); + return native::CacheableBoolean::create(val); } //widechar - Char Serializable::getChar(apache::geode::client::SerializablePtr nativeptr) + Char Serializable::getChar(native::SerializablePtr nativeptr) { - apache::geode::client::CacheableWideChar* ci = static_cast<apache::geode::client::CacheableWideChar*>(nativeptr.get()); + native::CacheableWideChar* ci = static_cast<native::CacheableWideChar*>(nativeptr.get()); return ci->value(); } - apache::geode::client::CacheableKeyPtr Serializable::getCacheableWideChar(Char val) + native::CacheableKeyPtr Serializable::getCacheableWideChar(Char val) { - return apache::geode::client::CacheableWideChar::create(val); + return native::CacheableWideChar::create(val); } //double - double Serializable::getDouble(apache::geode::client::SerializablePtr nativeptr) + double Serializable::getDouble(native::SerializablePtr nativeptr) { - apache::geode::client::CacheableDouble* ci = static_cast<apache::geode::client::CacheableDouble*>(nativeptr.get()); + native::CacheableDouble* ci = static_cast<native::CacheableDouble*>(nativeptr.get()); return ci->value(); } - apache::geode::client::CacheableKeyPtr Serializable::getCacheableDouble(double val) + native::CacheableKeyPtr Serializable::getCacheableDouble(double val) { - return apache::geode::client::CacheableDouble::create(val); + return native::CacheableDouble::create(val); } //float - float Serializable::getFloat(apache::geode::client::SerializablePtr nativeptr) + float Serializable::getFloat(native::SerializablePtr nativeptr) { - apache::geode::client::CacheableFloat* ci = static_cast<apache::geode::client::CacheableFloat*>(nativeptr.get()); + native::CacheableFloat* ci = static_cast<native::CacheableFloat*>(nativeptr.get()); return ci->value(); } - apache::geode::client::CacheableKeyPtr Serializable::getCacheableFloat(float val) + native::CacheableKeyPtr Serializable::getCacheableFloat(float val) { - return apache::geode::client::CacheableFloat::create(val); + return native::CacheableFloat::create(val); } //int16 - System::Int16 Serializable::getInt16(apache::geode::client::SerializablePtr nativeptr) + System::Int16 Serializable::getInt16(native::SerializablePtr nativeptr) { - apache::geode::client::CacheableInt16* ci = static_cast<apache::geode::client::CacheableInt16*>(nativeptr.get()); + native::CacheableInt16* ci = static_cast<native::CacheableInt16*>(nativeptr.get()); return ci->value(); } - apache::geode::client::CacheableKeyPtr Serializable::getCacheableInt16(int val) + native::CacheableKeyPtr Serializable::getCacheableInt16(int val) { - return apache::geode::client::CacheableInt16::create(val); + return native::CacheableInt16::create(val); } //int32 - System::Int32 Serializable::getInt32(apache::geode::client::SerializablePtr nativeptr) + System::Int32 Serializable::getInt32(native::SerializablePtr nativeptr) { - apache::geode::client::CacheableInt32* ci = static_cast<apache::geode::client::CacheableInt32*>(nativeptr.get()); + native::CacheableInt32* ci = static_cast<native::CacheableInt32*>(nativeptr.get()); return ci->value(); } - apache::geode::client::CacheableKeyPtr Serializable::getCacheableInt32(System::Int32 val) + native::CacheableKeyPtr Serializable::getCacheableInt32(System::Int32 val) { - return apache::geode::client::CacheableInt32::create(val); + return native::CacheableInt32::create(val); } //int64 - System::Int64 Serializable::getInt64(apache::geode::client::SerializablePtr nativeptr) + System::Int64 Serializable::getInt64(native::SerializablePtr nativeptr) { - apache::geode::client::CacheableInt64* ci = static_cast<apache::geode::client::CacheableInt64*>(nativeptr.get()); + native::CacheableInt64* ci = static_cast<native::CacheableInt64*>(nativeptr.get()); return ci->value(); } - apache::geode::client::CacheableKeyPtr Serializable::getCacheableInt64(System::Int64 val) + native::CacheableKeyPtr Serializable::getCacheableInt64(System::Int64 val) { - return apache::geode::client::CacheableInt64::create(val); + return native::CacheableInt64::create(val); } //cacheable ascii string - String^ Serializable::getASCIIString(apache::geode::client::SerializablePtr nativeptr) + String^ Serializable::getASCIIString(native::SerializablePtr nativeptr) { - //apache::geode::client::CacheableString* ci = static_cast<apache::geode::client::CacheableString*>(nativeptr.get()); + //native::CacheableString* ci = static_cast<native::CacheableString*>(nativeptr.get()); //return GetString(ci); return GetString(nativeptr->toString()); } - apache::geode::client::CacheableKeyPtr Serializable::getCacheableASCIIString(String^ val) + native::CacheableKeyPtr Serializable::getCacheableASCIIString(String^ val) { return GetCacheableString(val); } - apache::geode::client::CacheableKeyPtr Serializable::getCacheableASCIIString2(String^ val) + native::CacheableKeyPtr Serializable::getCacheableASCIIString2(String^ val) { return GetCacheableString2(val); } //cacheable ascii string huge - String^ Serializable::getASCIIStringHuge(apache::geode::client::SerializablePtr nativeptr) + String^ Serializable::getASCIIStringHuge(native::SerializablePtr nativeptr) { - //apache::geode::client::CacheableString* ci = static_cast<apache::geode::client::CacheableString*>(nativeptr.get()); + //native::CacheableString* ci = static_cast<native::CacheableString*>(nativeptr.get()); //return GetString(ci); return GetString(nativeptr->toString()); } - apache::geode::client::CacheableKeyPtr Serializable::getCacheableASCIIStringHuge(String^ val) + native::CacheableKeyPtr Serializable::getCacheableASCIIStringHuge(String^ val) { return GetCacheableString(val); } //cacheable string - String^ Serializable::getUTFString(apache::geode::client::SerializablePtr nativeptr) + String^ Serializable::getUTFString(native::SerializablePtr nativeptr) { - //apache::geode::client::CacheableString* ci = static_cast<apache::geode::client::CacheableString*>(nativeptr.get()); + //native::CacheableString* ci = static_cast<native::CacheableString*>(nativeptr.get()); //return GetString(ci); return GetString(nativeptr->toString()); } - apache::geode::client::CacheableKeyPtr Serializable::getCacheableUTFString(String^ val) + native::CacheableKeyPtr Serializable::getCacheableUTFString(String^ val) { return GetCacheableString(val); } //cacheable string huge - String^ Serializable::getUTFStringHuge(apache::geode::client::SerializablePtr nativeptr) + String^ Serializable::getUTFStringHuge(native::SerializablePtr nativeptr) { - //apache::geode::client::CacheableString* ci = static_cast<apache::geode::client::CacheableString*>(nativeptr.get()); + //native::CacheableString* ci = static_cast<native::CacheableString*>(nativeptr.get()); //return GetString(ci); return GetString(nativeptr->toString()); } - apache::geode::client::CacheableKeyPtr Serializable::getCacheableUTFStringHuge(String^ val) + native::CacheableKeyPtr Serializable::getCacheableUTFStringHuge(String^ val) { return GetCacheableString(val); } - apache::geode::client::CacheableStringPtr Serializable::GetCacheableString(String^ value) + native::CacheableStringPtr Serializable::GetCacheableString(String^ value) { - apache::geode::client::CacheableStringPtr cStr; + native::CacheableStringPtr cStr; size_t len = 0; if (value != nullptr) { len = value->Length; pin_ptr<const wchar_t> pin_value = PtrToStringChars(value); - cStr = apache::geode::client::CacheableString::create(pin_value, Convert::ToInt32(len)); + cStr = native::CacheableString::create(pin_value, Convert::ToInt32(len)); } else { - cStr = (apache::geode::client::CacheableString*) - apache::geode::client::CacheableString::createDeserializable(); + cStr.reset(static_cast<native::CacheableString *>( + native::CacheableString::createDeserializable())); } return cStr; } - apache::geode::client::CacheableStringPtr Serializable::GetCacheableString2(String^ value) + native::CacheableStringPtr Serializable::GetCacheableString2(String^ value) { - apache::geode::client::CacheableStringPtr cStr; + native::CacheableStringPtr cStr; size_t len = 0; if (value != nullptr) { len = value->Length; const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(value)).ToPointer(); - cStr = apache::geode::client::CacheableString::create(chars, Convert::ToInt32(len)); + cStr = native::CacheableString::create(chars, Convert::ToInt32(len)); Marshal::FreeHGlobal(IntPtr((void*)chars)); } else { - cStr = (apache::geode::client::CacheableString*) - apache::geode::client::CacheableString::createDeserializable(); + cStr.reset(static_cast<native::CacheableString*>( + native::CacheableString::createDeserializable())); } return cStr; } /* - static String^ GetString(apache::geode::client::CacheableStringPtr cStr)//apache::geode::client::CacheableString* + static String^ GetString(native::CacheableStringPtr cStr)//native::CacheableString* { if (cStr == nullptr) { return nullptr;
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6027574a/src/clicache/src/Serializable.hpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/Serializable.hpp b/src/clicache/src/Serializable.hpp index 9c5dc4d..999dc80 100644 --- a/src/clicache/src/Serializable.hpp +++ b/src/clicache/src/Serializable.hpp @@ -18,12 +18,15 @@ #pragma once #include "geode_defs.hpp" +#include "begin_native.hpp" #include <geode/CacheableKey.hpp> #include <geode/CacheableBuiltins.hpp> +#include "end_native.hpp" + #include "IGeodeSerializable.hpp" #include "IGeodeDelta.hpp" #include "impl/ManagedString.hpp" -#include "impl/NativeWrapper.hpp" +#include "native_shared_ptr.hpp" #include "impl/EnumInfo.hpp" #include "Log.hpp" #include <vcclr.h> @@ -38,18 +41,19 @@ namespace Apache { namespace Client { + namespace native = apache::geode::client; interface class IPdxSerializable; interface class IPdxSerializer; /// <summary> /// Signature of native function delegates passed to native - /// <c>apache::geode::client::Serializable::registerType</c>. + /// <c>native::Serializable::registerType</c>. /// 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 native - /// <c>apache::geode::client::Serializable::fromData</c>. + /// <c>native::Serializable::fromData</c>. /// </summary> - delegate apache::geode::client::Serializable* TypeFactoryNativeMethodGeneric(); + delegate native::Serializable* TypeFactoryNativeMethodGeneric(); /// <summary> /// Signature of function delegates passed to @@ -62,13 +66,13 @@ namespace Apache /// </summary> public delegate Apache::Geode::Client::IGeodeSerializable^ TypeFactoryMethodGeneric(); /// <summary> - /// Delegate to wrap a native <c>apache::geode::client::Serializable</c> type. + /// Delegate to wrap a native <c>native::Serializable</c> type. /// </summary> /// <remarks> /// This delegate should return an object of type <c>IGeodeSerializable</c> /// given a native object. /// </remarks> - delegate Apache::Geode::Client::IGeodeSerializable^ WrapperDelegateGeneric(apache::geode::client::Serializable* obj); + delegate Apache::Geode::Client::IGeodeSerializable^ WrapperDelegateGeneric(native::SerializablePtr obj); /// <summary> /// Signature of function delegates passed to @@ -80,12 +84,11 @@ namespace Apache public delegate Apache::Geode::Client::IPdxSerializable^ PdxTypeFactoryMethod(); /// <summary> - /// This class wraps the native C++ <c>apache::geode::client::Serializable</c> objects + /// This class wraps the native C++ <c>native::Serializable</c> objects /// as managed <see cref="IGeodeSerializable" /> objects. /// </summary> public ref class Serializable - : public Apache::Geode::Client::Internal::SBWrap<apache::geode::client::Serializable>, - public Apache::Geode::Client::IGeodeSerializable + : public Apache::Geode::Client::IGeodeSerializable { public: /// <summary> @@ -314,81 +317,81 @@ namespace Apache static Dictionary<String^, PdxTypeFactoryMethod^>^ PdxDelegateMap = gcnew Dictionary<String^, PdxTypeFactoryMethod^>(); - static String^ GetString(apache::geode::client::CacheableStringPtr cStr);//apache::geode::client::CacheableString* + static String^ GetString(native::CacheableStringPtr cStr);//native::CacheableString* // These are the new static methods to get/put data from c++ //byte - static Byte getByte(apache::geode::client::SerializablePtr nativeptr); + static Byte getByte(native::SerializablePtr nativeptr); - static apache::geode::client::CacheableKeyPtr getCacheableByte(SByte val); + static native::CacheableKeyPtr getCacheableByte(SByte val); //boolean - static bool getBoolean(apache::geode::client::SerializablePtr nativeptr); + static bool getBoolean(native::SerializablePtr nativeptr); - static apache::geode::client::CacheableKeyPtr getCacheableBoolean(bool val); + static native::CacheableKeyPtr getCacheableBoolean(bool val); //widechar - static Char getChar(apache::geode::client::SerializablePtr nativeptr); + static Char getChar(native::SerializablePtr nativeptr); - static apache::geode::client::CacheableKeyPtr getCacheableWideChar(Char val); + static native::CacheableKeyPtr getCacheableWideChar(Char val); //double - static double getDouble(apache::geode::client::SerializablePtr nativeptr); + static double getDouble(native::SerializablePtr nativeptr); - static apache::geode::client::CacheableKeyPtr getCacheableDouble(double val); + static native::CacheableKeyPtr getCacheableDouble(double val); //float - static float getFloat(apache::geode::client::SerializablePtr nativeptr); + static float getFloat(native::SerializablePtr nativeptr); - static apache::geode::client::CacheableKeyPtr getCacheableFloat(float val); + static native::CacheableKeyPtr getCacheableFloat(float val); //int16 - static System::Int16 getInt16(apache::geode::client::SerializablePtr nativeptr); + static System::Int16 getInt16(native::SerializablePtr nativeptr); - static apache::geode::client::CacheableKeyPtr getCacheableInt16(int val); + static native::CacheableKeyPtr getCacheableInt16(int val); //int32 - static System::Int32 getInt32(apache::geode::client::SerializablePtr nativeptr); + static System::Int32 getInt32(native::SerializablePtr nativeptr); - static apache::geode::client::CacheableKeyPtr getCacheableInt32(System::Int32 val); + static native::CacheableKeyPtr getCacheableInt32(System::Int32 val); //int64 - static System::Int64 getInt64(apache::geode::client::SerializablePtr nativeptr); + static System::Int64 getInt64(native::SerializablePtr nativeptr); - static apache::geode::client::CacheableKeyPtr getCacheableInt64(System::Int64 val); + static native::CacheableKeyPtr getCacheableInt64(System::Int64 val); //cacheable ascii string - static String^ getASCIIString(apache::geode::client::SerializablePtr nativeptr); + static String^ getASCIIString(native::SerializablePtr nativeptr); - static apache::geode::client::CacheableKeyPtr getCacheableASCIIString(String^ val); + static native::CacheableKeyPtr getCacheableASCIIString(String^ val); - static apache::geode::client::CacheableKeyPtr getCacheableASCIIString2(String^ val); + static native::CacheableKeyPtr getCacheableASCIIString2(String^ val); //cacheable ascii string huge - static String^ getASCIIStringHuge(apache::geode::client::SerializablePtr nativeptr); + static String^ getASCIIStringHuge(native::SerializablePtr nativeptr); - static apache::geode::client::CacheableKeyPtr getCacheableASCIIStringHuge(String^ val); + static native::CacheableKeyPtr getCacheableASCIIStringHuge(String^ val); //cacheable string - static String^ getUTFString(apache::geode::client::SerializablePtr nativeptr); + static String^ getUTFString(native::SerializablePtr nativeptr); - static apache::geode::client::CacheableKeyPtr getCacheableUTFString(String^ val); + static native::CacheableKeyPtr getCacheableUTFString(String^ val); //cacheable string huge - static String^ getUTFStringHuge(apache::geode::client::SerializablePtr nativeptr); + static String^ getUTFStringHuge(native::SerializablePtr nativeptr); - static apache::geode::client::CacheableKeyPtr getCacheableUTFStringHuge(String^ val); + static native::CacheableKeyPtr getCacheableUTFStringHuge(String^ val); - static apache::geode::client::CacheableStringPtr GetCacheableString(String^ value); + static native::CacheableStringPtr GetCacheableString(String^ value); - static apache::geode::client::CacheableStringPtr GetCacheableString2(String^ value); + static native::CacheableStringPtr GetCacheableString2(String^ value); /* - static String^ GetString(apache::geode::client::CacheableStringPtr cStr)//apache::geode::client::CacheableString* + static String^ GetString(native::CacheableStringPtr cStr)//native::CacheableString* { if (cStr == nullptr) { return nullptr; @@ -415,14 +418,16 @@ namespace Apache /// Default constructor. /// </summary> inline Apache::Geode::Client::Serializable() - : Apache::Geode::Client::Internal::SBWrap<apache::geode::client::Serializable>() { } + :Serializable(__nullptr) { } /// <summary> /// Internal constructor to wrap a native object pointer /// </summary> /// <param name="nativeptr">The native object pointer</param> - inline Apache::Geode::Client::Serializable(apache::geode::client::Serializable* nativeptr) - : Client::Internal::SBWrap<apache::geode::client::Serializable>(nativeptr) { } + inline Apache::Geode::Client::Serializable(native::SerializablePtr nativeptr) + { + m_nativeptr = gcnew native_shared_ptr<native::Serializable>(nativeptr); + } /// <summary> /// Register an instance factory method for a given type and typeId. @@ -446,20 +451,20 @@ namespace Apache static void UnregisterTypeGeneric(Byte typeId); generic<class TValue> - static TValue GetManagedValueGeneric(apache::geode::client::SerializablePtr val); + static TValue GetManagedValueGeneric(native::SerializablePtr val); generic<class TKey> - static apache::geode::client::CacheableKeyPtr GetUnmanagedValueGeneric(TKey key); + static native::CacheableKeyPtr GetUnmanagedValueGeneric(TKey key); generic<class TKey> - static apache::geode::client::CacheableKeyPtr GetUnmanagedValueGeneric(TKey key, bool isAciiChar); + static native::CacheableKeyPtr GetUnmanagedValueGeneric(TKey key, bool isAciiChar); generic<class TKey> - static apache::geode::client::CacheableKeyPtr GetUnmanagedValueGeneric( + static native::CacheableKeyPtr GetUnmanagedValueGeneric( Type^ managedType, TKey key); generic<class TKey> - static apache::geode::client::CacheableKeyPtr GetUnmanagedValueGeneric( + static native::CacheableKeyPtr GetUnmanagedValueGeneric( Type^ managedType, TKey key, bool isAsciiChar); /// <summary> @@ -477,29 +482,6 @@ namespace Apache } /// <summary> - /// Used to assign the native Serializable pointer to a new object. - /// </summary> - /// <remarks> - /// Note the order of preserveSB() and releaseSB(). This handles the - /// corner case when <c>m_nativeptr</c> is same as <c>nativeptr</c>. - /// </remarks> - inline void AssignSP(apache::geode::client::Serializable* nativeptr) - { - AssignPtr(nativeptr); - } - - /// <summary> - /// Used to assign the native Serializable pointer to a new object. - /// </summary> - inline void SetSP(apache::geode::client::Serializable* nativeptr) - { - if (nativeptr != nullptr) { - nativeptr->preserveSB(); - } - _SetNativePtr(nativeptr); - } - - /// <summary> /// Static list of <c>TypeFactoryNativeMethod</c> delegates created /// from registered managed <c>TypeFactoryMethod</c> delegates. /// This is so that the underlying managed objects do not get GCed. @@ -608,7 +590,7 @@ namespace Apache /// <summary> /// Static method to register a managed wrapper for a native - /// <c>apache::geode::client::Serializable</c> type. + /// <c>native::Serializable</c> type. /// </summary> /// <param name="wrapperMethod"> /// A factory delegate of the managed wrapper class that returns the @@ -630,7 +612,7 @@ namespace Apache /// Static method to lookup the wrapper delegate for a given typeId. /// </summary> /// <param name="typeId"> - /// The typeId of the native <c>apache::geode::client::Serializable</c> type. + /// The typeId of the native <c>native::Serializable</c> type. /// </param> /// <returns> /// If a managed wrapper is registered for the given typeId then the @@ -651,55 +633,58 @@ namespace Apache { Dictionary<Object^, Object^>^ dic = gcnew Dictionary<Object^, Object^>(); - ManagedTypeMappingGeneric[dic->GetType()] = apache::geode::client::GeodeTypeIds::CacheableHashMap; - ManagedTypeMappingGeneric[dic->GetType()->GetGenericTypeDefinition()] = apache::geode::client::GeodeTypeIds::CacheableHashMap; + ManagedTypeMappingGeneric[dic->GetType()] = native::GeodeTypeIds::CacheableHashMap; + ManagedTypeMappingGeneric[dic->GetType()->GetGenericTypeDefinition()] = native::GeodeTypeIds::CacheableHashMap; } { System::Collections::ArrayList^ arr = gcnew System::Collections::ArrayList(); - ManagedTypeMappingGeneric[arr->GetType()] = apache::geode::client::GeodeTypeIds::CacheableVector; + ManagedTypeMappingGeneric[arr->GetType()] = native::GeodeTypeIds::CacheableVector; } { System::Collections::Generic::LinkedList<Object^>^ linketList = gcnew System::Collections::Generic::LinkedList<Object^>(); - ManagedTypeMappingGeneric[linketList->GetType()] = apache::geode::client::GeodeTypeIds::CacheableLinkedList; - ManagedTypeMappingGeneric[linketList->GetType()->GetGenericTypeDefinition()] = apache::geode::client::GeodeTypeIds::CacheableLinkedList; + ManagedTypeMappingGeneric[linketList->GetType()] = native::GeodeTypeIds::CacheableLinkedList; + ManagedTypeMappingGeneric[linketList->GetType()->GetGenericTypeDefinition()] = native::GeodeTypeIds::CacheableLinkedList; } { System::Collections::Generic::IList<Object^>^ iList = gcnew System::Collections::Generic::List<Object^>(); - ManagedTypeMappingGeneric[iList->GetType()] = apache::geode::client::GeodeTypeIds::CacheableArrayList; - ManagedTypeMappingGeneric[iList->GetType()->GetGenericTypeDefinition()] = apache::geode::client::GeodeTypeIds::CacheableArrayList; + ManagedTypeMappingGeneric[iList->GetType()] = native::GeodeTypeIds::CacheableArrayList; + ManagedTypeMappingGeneric[iList->GetType()->GetGenericTypeDefinition()] = native::GeodeTypeIds::CacheableArrayList; } //TODO: Linked list, non generic stack, some other map types and see if more { System::Collections::Generic::Stack<Object^>^ stack = gcnew System::Collections::Generic::Stack<Object^>(); - ManagedTypeMappingGeneric[stack->GetType()] = apache::geode::client::GeodeTypeIds::CacheableStack; - ManagedTypeMappingGeneric[stack->GetType()->GetGenericTypeDefinition()] = apache::geode::client::GeodeTypeIds::CacheableStack; + ManagedTypeMappingGeneric[stack->GetType()] = native::GeodeTypeIds::CacheableStack; + ManagedTypeMappingGeneric[stack->GetType()->GetGenericTypeDefinition()] = native::GeodeTypeIds::CacheableStack; } { - ManagedTypeMappingGeneric[SByte::typeid] = apache::geode::client::GeodeTypeIds::CacheableByte; - ManagedTypeMappingGeneric[Boolean::typeid] = apache::geode::client::GeodeTypeIds::CacheableBoolean; - ManagedTypeMappingGeneric[Char::typeid] = apache::geode::client::GeodeTypeIds::CacheableWideChar; - ManagedTypeMappingGeneric[Double::typeid] = apache::geode::client::GeodeTypeIds::CacheableDouble; - ManagedTypeMappingGeneric[String::typeid] = apache::geode::client::GeodeTypeIds::CacheableASCIIString; - ManagedTypeMappingGeneric[float::typeid] = apache::geode::client::GeodeTypeIds::CacheableFloat; - ManagedTypeMappingGeneric[Int16::typeid] = apache::geode::client::GeodeTypeIds::CacheableInt16; - ManagedTypeMappingGeneric[Int32::typeid] = apache::geode::client::GeodeTypeIds::CacheableInt32; - ManagedTypeMappingGeneric[Int64::typeid] = apache::geode::client::GeodeTypeIds::CacheableInt64; - ManagedTypeMappingGeneric[Type::GetType("System.Byte[]")] = apache::geode::client::GeodeTypeIds::CacheableBytes; - ManagedTypeMappingGeneric[Type::GetType("System.Double[]")] = apache::geode::client::GeodeTypeIds::CacheableDoubleArray; - ManagedTypeMappingGeneric[Type::GetType("System.Single[]")] = apache::geode::client::GeodeTypeIds::CacheableFloatArray; - ManagedTypeMappingGeneric[Type::GetType("System.Int16[]")] = apache::geode::client::GeodeTypeIds::CacheableInt16Array; - ManagedTypeMappingGeneric[Type::GetType("System.Int32[]")] = apache::geode::client::GeodeTypeIds::CacheableInt32Array; - ManagedTypeMappingGeneric[Type::GetType("System.Int64[]")] = apache::geode::client::GeodeTypeIds::CacheableInt64Array; - ManagedTypeMappingGeneric[Type::GetType("System.String[]")] = apache::geode::client::GeodeTypeIds::CacheableStringArray; - ManagedTypeMappingGeneric[Type::GetType("System.DateTime")] = apache::geode::client::GeodeTypeIds::CacheableDate; - ManagedTypeMappingGeneric[Type::GetType("System.Collections.Hashtable")] = apache::geode::client::GeodeTypeIds::CacheableHashTable; + ManagedTypeMappingGeneric[SByte::typeid] = native::GeodeTypeIds::CacheableByte; + ManagedTypeMappingGeneric[Boolean::typeid] = native::GeodeTypeIds::CacheableBoolean; + ManagedTypeMappingGeneric[Char::typeid] = native::GeodeTypeIds::CacheableWideChar; + ManagedTypeMappingGeneric[Double::typeid] = native::GeodeTypeIds::CacheableDouble; + ManagedTypeMappingGeneric[String::typeid] = native::GeodeTypeIds::CacheableASCIIString; + ManagedTypeMappingGeneric[float::typeid] = native::GeodeTypeIds::CacheableFloat; + ManagedTypeMappingGeneric[Int16::typeid] = native::GeodeTypeIds::CacheableInt16; + ManagedTypeMappingGeneric[Int32::typeid] = native::GeodeTypeIds::CacheableInt32; + ManagedTypeMappingGeneric[Int64::typeid] = native::GeodeTypeIds::CacheableInt64; + ManagedTypeMappingGeneric[Type::GetType("System.Byte[]")] = native::GeodeTypeIds::CacheableBytes; + ManagedTypeMappingGeneric[Type::GetType("System.Double[]")] = native::GeodeTypeIds::CacheableDoubleArray; + ManagedTypeMappingGeneric[Type::GetType("System.Single[]")] = native::GeodeTypeIds::CacheableFloatArray; + ManagedTypeMappingGeneric[Type::GetType("System.Int16[]")] = native::GeodeTypeIds::CacheableInt16Array; + ManagedTypeMappingGeneric[Type::GetType("System.Int32[]")] = native::GeodeTypeIds::CacheableInt32Array; + ManagedTypeMappingGeneric[Type::GetType("System.Int64[]")] = native::GeodeTypeIds::CacheableInt64Array; + ManagedTypeMappingGeneric[Type::GetType("System.String[]")] = native::GeodeTypeIds::CacheableStringArray; + ManagedTypeMappingGeneric[Type::GetType("System.DateTime")] = native::GeodeTypeIds::CacheableDate; + ManagedTypeMappingGeneric[Type::GetType("System.Collections.Hashtable")] = native::GeodeTypeIds::CacheableHashTable; } } + + protected: + native_shared_ptr<native::Serializable>^ m_nativeptr; }; } // namespace Client } // namespace Geode