http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/Execution.cpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/Execution.cpp b/src/clicache/src/Execution.cpp index 0a43e9b..2ba9187 100644 --- a/src/clicache/src/Execution.cpp +++ b/src/clicache/src/Execution.cpp @@ -49,7 +49,7 @@ namespace Apache for each(TFilter item in routingObj) { - rsptr->push_back(Serializable::GetUnmanagedValueGeneric<TFilter>( item )); + rsptr->push_back(Serializable::GetUnmanagedValueGeneric<TFilter>( item, nullptr )); } try @@ -74,7 +74,7 @@ namespace Apache _GF_MG_EXCEPTION_TRY2/* due to auto replace */ try { - auto argsptr = Serializable::GetUnmanagedValueGeneric<TArgs>( args ); + auto argsptr = Serializable::GetUnmanagedValueGeneric<TArgs>( args, nullptr ); return Execution<TResult>::Create(m_nativeptr->get()->withArgs(argsptr), this->m_rc); } finally
http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/LocalRegion.cpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/LocalRegion.cpp b/src/clicache/src/LocalRegion.cpp index 143f51a..1313558 100644 --- a/src/clicache/src/LocalRegion.cpp +++ b/src/clicache/src/LocalRegion.cpp @@ -15,6 +15,11 @@ * limitations under the License. */ +#include "begin_native.hpp" +#include "geode/Region.hpp" +#include "geode/Cache.hpp" +#include "end_native.hpp" + #include "LocalRegion.hpp" #include "Cache.hpp" #include "CacheStatistics.hpp" @@ -35,7 +40,7 @@ namespace Apache generic<class TKey, class TValue> TValue LocalRegion<TKey, TValue>::Get(TKey key, Object^ callbackArg) { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key ); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key, m_nativeptr->get()->getCache().get() ); auto nativeptr= this->getRegionEntryValue(keyptr); if (nativeptr == nullptr) { @@ -72,9 +77,9 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key ); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>( value ); - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>( callbackArg ); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key, m_nativeptr->get()->getCache().get() ); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>( value, m_nativeptr->get()->getCache().get() ); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>( callbackArg, m_nativeptr->get()->getCache().get() ); m_nativeptr->get()->localPut( keyptr, valueptr, callbackptr ); } finally @@ -88,7 +93,7 @@ namespace Apache generic<class TKey, class TValue> TValue LocalRegion<TKey, TValue>::default::get(TKey key) { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key ); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key, m_nativeptr->get()->getCache().get() ); auto nativeptr = this->getRegionEntryValue(keyptr); if (nativeptr == nullptr) { @@ -105,8 +110,8 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key ); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>( value ); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key, m_nativeptr->get()->getCache().get() ); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>( value, m_nativeptr->get()->getCache().get() ); m_nativeptr->get()->localPut( keyptr, valueptr ); } finally @@ -195,15 +200,15 @@ namespace Apache { return false; } - apache::geode::client::DataOutput out1; - apache::geode::client::DataOutput out2; - val1->toData(out1); - val2->toData(out2); - if ( out1.getBufferLength() != out2.getBufferLength() ) + std::unique_ptr<apache::geode::client::DataOutput> out1 = m_nativeptr->get_shared_ptr()->getCache()->createDataOutput(); + std::unique_ptr<apache::geode::client::DataOutput> out2 = m_nativeptr->get_shared_ptr()->getCache()->createDataOutput(); + val1->toData(*out1); + val2->toData(*out2); + if ( out1->getBufferLength() != out2->getBufferLength() ) { return false; } - else if (memcmp(out1.getBuffer(), out2.getBuffer(), out1.getBufferLength()) != 0) + else if (memcmp(out1->getBuffer(), out2->getBuffer(), out1->getBufferLength()) != 0) { return false; } @@ -215,7 +220,7 @@ namespace Apache generic<class TKey, class TValue> bool LocalRegion<TKey, TValue>::Contains(KeyValuePair<TKey,TValue> keyValuePair) { - auto keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( keyValuePair.Key ); + auto keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( keyValuePair.Key, m_nativeptr->get()->getCache().get() ); auto nativeptr = this->getRegionEntryValue(keyptr); //This means that key is not present. if (nativeptr == nullptr) { @@ -232,7 +237,7 @@ namespace Apache try { - auto keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key ); + auto keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key, m_nativeptr->get()->getCache().get() ); return m_nativeptr->get()->containsKey(keyptr); } finally @@ -246,7 +251,7 @@ namespace Apache generic<class TKey, class TValue> bool LocalRegion<TKey, TValue>::TryGetValue(TKey key, TValue %val) { - auto keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key ); + auto keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key, m_nativeptr->get()->getCache().get() ); auto nativeptr = this->getRegionEntryValue(keyptr); if (nativeptr == nullptr) { val = TValue(); @@ -320,8 +325,8 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key ); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>( value ); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key, m_nativeptr->get()->getCache().get() ); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>( value, m_nativeptr->get()->getCache().get() ); m_nativeptr->get()->localCreate( keyptr, valueptr ); } finally @@ -339,8 +344,8 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( keyValuePair.Key ); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>( keyValuePair.Value ); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( keyValuePair.Key, m_nativeptr->get()->getCache().get() ); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>( keyValuePair.Value, m_nativeptr->get()->getCache().get() ); m_nativeptr->get()->localCreate( keyptr, valueptr ); } finally @@ -358,9 +363,9 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key ); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>( value ); - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>( callbackArg ); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key, m_nativeptr->get()->getCache().get() ); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>( value, m_nativeptr->get()->getCache().get() ); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>( callbackArg, m_nativeptr->get()->getCache().get() ); m_nativeptr->get()->localCreate( keyptr, valueptr, callbackptr ); } finally @@ -378,7 +383,7 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); m_nativeptr->get()->localDestroy(keyptr); return true; } @@ -401,8 +406,8 @@ namespace Apache _GF_MG_EXCEPTION_TRY2/* due to auto replace */ try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); m_nativeptr->get()->localDestroy(keyptr, callbackptr); return true; } @@ -424,8 +429,8 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( keyValuePair.Key ); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>( keyValuePair.Value ); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( keyValuePair.Key, m_nativeptr->get()->getCache().get() ); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>( keyValuePair.Value, m_nativeptr->get()->getCache().get() ); return m_nativeptr->get()->localRemove(keyptr, valueptr); } finally @@ -443,9 +448,9 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(value); - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(value, m_nativeptr->get()->getCache().get()); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); return m_nativeptr->get()->localRemove(keyptr, valueptr, callbackptr); } finally @@ -473,7 +478,7 @@ namespace Apache try { - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>( callbackArg ); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>( callbackArg, m_nativeptr->get()->getCache().get() ); m_nativeptr->get()->localInvalidateRegion( callbackptr ); } finally @@ -500,7 +505,7 @@ namespace Apache _GF_MG_EXCEPTION_TRY2/* due to auto replace */ try { - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>( callbackArg ); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>( callbackArg, m_nativeptr->get()->getCache().get() ); m_nativeptr->get()->localDestroyRegion( callbackptr ); } finally @@ -528,8 +533,8 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key ); - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>( callbackArg ); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>( key, m_nativeptr->get()->getCache().get() ); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>( callbackArg, m_nativeptr->get()->getCache().get() ); m_nativeptr->get()->localInvalidate( keyptr, callbackptr ); } finally @@ -774,7 +779,7 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); auto nativeptr = m_nativeptr->get()->getEntry(keyptr); return RegionEntry<TKey, TValue>::Create(nativeptr); } @@ -846,7 +851,7 @@ namespace Apache try { - return m_nativeptr->get()->containsValueForKey(Serializable::GetUnmanagedValueGeneric<TKey>(key)); + return m_nativeptr->get()->containsValueForKey(Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get())); } finally { @@ -881,7 +886,7 @@ namespace Apache _GF_MG_EXCEPTION_TRY2/* due to auto replace */ try { - m_nativeptr->get()->localClear(Serializable::GetUnmanagedValueGeneric<Object^>( callbackArg ) ); + m_nativeptr->get()->localClear(Serializable::GetUnmanagedValueGeneric<Object^>( callbackArg, m_nativeptr->get()->getCache().get() ) ); } finally { http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/Pool.cpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/Pool.cpp b/src/clicache/src/Pool.cpp index 32921fb..6bb1f91 100644 --- a/src/clicache/src/Pool.cpp +++ b/src/clicache/src/Pool.cpp @@ -20,7 +20,7 @@ #include "QueryService.hpp" #include "CacheableString.hpp" #include "Cache.hpp" -#include "Properties.hpp" +//#include "Properties.hpp" #include "impl/ManagedString.hpp" #include "ExceptionTypes.hpp" #include "impl/SafeConvert.hpp" http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/PoolFactory.cpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/PoolFactory.cpp b/src/clicache/src/PoolFactory.cpp index e17bdee..bf3c0b1 100644 --- a/src/clicache/src/PoolFactory.cpp +++ b/src/clicache/src/PoolFactory.cpp @@ -23,6 +23,8 @@ #include "impl/ManagedString.hpp" #include "ExceptionTypes.hpp" +#include "Cache.hpp" + using namespace System; namespace Apache @@ -429,7 +431,7 @@ namespace Apache } - Pool^ PoolFactory::Create(String^ name) + Pool^ PoolFactory::Create(String^ name, Cache^ cache) { _GF_MG_EXCEPTION_TRY2/* due to auto replace */ http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/PoolFactory.hpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/PoolFactory.hpp b/src/clicache/src/PoolFactory.hpp index 49665bb..cf16906 100644 --- a/src/clicache/src/PoolFactory.hpp +++ b/src/clicache/src/PoolFactory.hpp @@ -390,7 +390,7 @@ namespace Apache /// throws IllegalStateException if a pool with name already exists /// throws IllegalStateException if a locator or server has not been added. /// </exception> - Pool^ Create(String^ name); + Pool^ Create(String^ name, Cache^ cache); internal: http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/PoolManager.cpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/PoolManager.cpp b/src/clicache/src/PoolManager.cpp index 5136442..3f641a7 100644 --- a/src/clicache/src/PoolManager.cpp +++ b/src/clicache/src/PoolManager.cpp @@ -35,12 +35,12 @@ namespace Apache PoolFactory^ PoolManager::CreateFactory() { - return PoolFactory::Create(native::PoolManager::createFactory()); + return PoolFactory::Create(m_nativeref.createFactory()); } const Dictionary<String^, Pool^>^ PoolManager::GetAll() { - auto pools = native::PoolManager::getAll(); + auto pools = m_nativeref.getAll(); auto result = gcnew Dictionary<String^, Pool^>(); for (const auto& iter : pools) { @@ -54,23 +54,23 @@ namespace Apache Pool^ PoolManager::Find(String^ name) { ManagedString mg_name( name ); - auto pool = native::PoolManager::find(mg_name.CharPtr); + auto pool = m_nativeref.find(mg_name.CharPtr); return Pool::Create(pool); } Pool^ PoolManager::Find(Client::Region<Object^, Object^>^ region) { - return Pool::Create(native::PoolManager::find(region->GetNative())); + return Pool::Create(m_nativeref.find(region->GetNative())); } void PoolManager::Close(Boolean KeepAlive) { - native::PoolManager::close(KeepAlive); + m_nativeref.close(KeepAlive); } void PoolManager::Close() { - native::PoolManager::close(); + m_nativeref.close(); } } // namespace Client } // namespace Geode http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/PoolManager.hpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/PoolManager.hpp b/src/clicache/src/PoolManager.hpp index f47d553..0ea139d 100644 --- a/src/clicache/src/PoolManager.hpp +++ b/src/clicache/src/PoolManager.hpp @@ -23,7 +23,6 @@ #include "end_native.hpp" - using namespace System; namespace Apache @@ -38,44 +37,64 @@ namespace Apache // generic<class TKey, class TValue> ref class PoolFactory; + namespace native = apache::geode::client; + /// <summary> /// This interface provides for the configuration and creation of instances of PoolFactory. /// </summary> // generic<class TKey, class TValue> - public ref class PoolManager STATICCLASS + public ref class PoolManager { public: /// <summary> /// Creates a new PoolFactory which is used to configure and create Pools. /// </summary> - static PoolFactory/*<TKey, TValue>*/^ CreateFactory(); + PoolFactory/*<TKey, TValue>*/^ CreateFactory(); /// <summary> /// Returns a map containing all the pools in this manager. /// The keys are pool names and the values are Pool instances. /// </summary> - static const Dictionary<String^, Pool/*<TKey, TValue>*/^>^ GetAll(); + const Dictionary<String^, Pool/*<TKey, TValue>*/^>^ GetAll(); /// <summary> /// Find by name an existing connection pool. /// </summary> - static Pool/*<TKey, TValue>*/^ Find(String^ name); + Pool/*<TKey, TValue>*/^ Find(String^ name); /// <summary> /// Find the pool used by the given region. /// </summary> - static Pool/*<TKey, TValue>*/^ Find(Client::Region<Object^, Object^>^ region); + Pool/*<TKey, TValue>*/^ Find(Client::Region<Object^, Object^>^ region); /// <summary> /// Destroys all created pools. /// </summary> - static void Close(Boolean KeepAlive); + void Close(Boolean KeepAlive); /// <summary> /// Destroys all created pools. /// </summary> - static void Close(); + void Close(); + + internal: + + native::PoolManager& GetNative() + { + return m_nativeref; + } + + /// <summary> + /// Private constructor to wrap a native object pointer + /// </summary> + /// <param name="nativeptr">The native object pointer</param> + inline PoolManager(native::PoolManager& nativeref) + : m_nativeref(nativeref) + { + } + + native::PoolManager& m_nativeref; }; } // namespace Client } // namespace Geode http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/Properties.cpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/Properties.cpp b/src/clicache/src/Properties.cpp index b499369..af41931 100644 --- a/src/clicache/src/Properties.cpp +++ b/src/clicache/src/Properties.cpp @@ -15,13 +15,17 @@ * limitations under the License. */ +#include "begin_native.hpp" +#include "CacheImpl.hpp" +#include "SerializationRegistry.hpp" +#include "end_native.hpp" + #include "Properties.hpp" #include "impl/ManagedVisitor.hpp" #include "impl/ManagedString.hpp" #include "impl/SafeConvert.hpp" #include "ExceptionTypes.hpp" - using namespace System; @@ -65,7 +69,7 @@ namespace Apache { try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TPropKey>(key); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TPropKey>(key, nullptr); auto nativeptr = m_nativeptr->get()->find(keyptr); return Serializable::GetManagedValueGeneric<TPropValue>(nativeptr); } @@ -78,8 +82,8 @@ namespace Apache generic<class TPropKey, class TPropValue> void Properties<TPropKey, TPropValue>::Insert( TPropKey key, TPropValue value ) { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TPropKey>(key, true); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TPropValue>(value, true); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TPropKey>(key, true, nullptr); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TPropValue>(value, true, nullptr); _GF_MG_EXCEPTION_TRY2 @@ -98,7 +102,7 @@ namespace Apache generic<class TPropKey, class TPropValue> void Properties<TPropKey, TPropValue>::Remove( TPropKey key) { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TPropKey>(key); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TPropKey>(key, nullptr); _GF_MG_EXCEPTION_TRY2 @@ -294,57 +298,59 @@ namespace Apache // ISerializable methods - generic<class TPropKey, class TPropValue> - void Properties<TPropKey, TPropValue>::GetObjectData( SerializationInfo^ info, - StreamingContext context ) - { - native::DataOutput output; - - _GF_MG_EXCEPTION_TRY2 - - try - { - m_nativeptr->get()->toData( output ); - } - finally - { - GC::KeepAlive(m_nativeptr); - } - - _GF_MG_EXCEPTION_CATCH_ALL2 - - auto bytes = gcnew array<Byte>( output.getBufferLength( ) ); - { - pin_ptr<const Byte> pin_bytes = &bytes[0]; - memcpy( (System::Byte*)pin_bytes, output.getBuffer( ), - output.getBufferLength( ) ); - } - info->AddValue( "bytes", bytes, array<Byte>::typeid ); - } - - generic<class TPropKey, class TPropValue> - Properties<TPropKey, TPropValue>::Properties( SerializationInfo^ info, - StreamingContext context ) - : Properties() - { - array<Byte>^ bytes = nullptr; - try { - bytes = dynamic_cast<array<Byte>^>( info->GetValue( "bytes", - array<Byte>::typeid ) ); - } - catch ( System::Exception^ ) { - // could not find the header -- null value - } - if (bytes != nullptr) { - pin_ptr<const Byte> pin_bytes = &bytes[0]; + //generic<class TPropKey, class TPropValue> + //void Properties<TPropKey, TPropValue>::GetObjectData( SerializationInfo^ info, + // StreamingContext context ) + //{ + // auto output = std::unique_ptr<native::DataOutput>(new native::DataOutput(*m_serializationRegistry->get_shared_ptr())); + + // _GF_MG_EXCEPTION_TRY2 + + // try + // { + // m_nativeptr->get()->toData( *output ); + // } + // finally + // { + // GC::KeepAlive(m_nativeptr); + // } + + // _GF_MG_EXCEPTION_CATCH_ALL2 + + // auto bytes = gcnew array<Byte>( output->getBufferLength( ) ); + // { + // pin_ptr<const Byte> pin_bytes = &bytes[0]; + // memcpy( (System::Byte*)pin_bytes, output->getBuffer( ), + // output->getBufferLength( ) ); + // } + // info->AddValue( "bytes", bytes, array<Byte>::typeid ); + //} + // + //generic<class TPropKey, class TPropValue> + //Properties<TPropKey, TPropValue>::Properties( SerializationInfo^ info, + // StreamingContext context, native::SerializationRegistryPtr serializationRegistry) + // : Properties(serializationRegistry) + //{ + // array<Byte>^ bytes = nullptr; + // try { + // bytes = dynamic_cast<array<Byte>^>( info->GetValue( "bytes", + // array<Byte>::typeid ) ); + // } + // catch ( System::Exception^ ) { + // // could not find the header -- null value + // } + // if (bytes != nullptr) { + // pin_ptr<const Byte> pin_bytes = &bytes[0]; + + // _GF_MG_EXCEPTION_TRY2 + + // native::DataInput input( (System::Byte*)pin_bytes, bytes->Length, *CacheImpl::getInstance()->getSerializationRegistry().get()); + // FromData(input); + // _GF_MG_EXCEPTION_CATCH_ALL2 + // } + //} - _GF_MG_EXCEPTION_TRY2 - native::DataInput input( (System::Byte*)pin_bytes, bytes->Length ); - FromData(input); - _GF_MG_EXCEPTION_CATCH_ALL2 - } - } } // namespace Client } // namespace Geode } // namespace Apache http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/Properties.hpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/Properties.hpp b/src/clicache/src/Properties.hpp index cf798b6..c175fff 100644 --- a/src/clicache/src/Properties.hpp +++ b/src/clicache/src/Properties.hpp @@ -21,6 +21,7 @@ #include "begin_native.hpp" #include <geode/Properties.hpp> +#include "SerializationRegistry.hpp" #include "end_native.hpp" #include "IGeodeSerializable.hpp" @@ -31,7 +32,6 @@ #include "native_shared_ptr.hpp" #include "impl/SafeConvert.hpp" #include "Serializable.hpp" -#include "native_shared_ptr.hpp" using namespace System; using namespace System::Runtime::Serialization; @@ -71,28 +71,30 @@ namespace Apache /// or an integer. /// </summary> public ref class Properties sealed - : public IGeodeSerializable, - public ISerializable + : public IGeodeSerializable //,public ISerializable { public: /// <summary> /// Default constructor: returns an empty collection. /// </summary> - inline Properties( ) + inline Properties() : Properties(native::Properties::create()) - {} + { + + } /// <summary> /// Factory method to create an empty collection of properties. /// </summary> /// <returns>empty collection of properties</returns> generic<class TPropKey, class TPropValue> - inline static Properties<TPropKey, TPropValue>^ Create( ) + inline static Properties<TPropKey, TPropValue>^ Create() { - return gcnew Properties<TPropKey, TPropValue>( ); + return gcnew Properties<TPropKey, TPropValue>(); } + /// <summary> /// Return the value for the given key, or NULL if not found. /// </summary> @@ -204,15 +206,15 @@ namespace Apache // ISerializable members - virtual void GetObjectData( SerializationInfo^ info, - StreamingContext context ); + //virtual void GetObjectData( SerializationInfo^ info, + // StreamingContext context); // End: ISerializable members protected: // For deserialization using the .NET serialization (ISerializable) - Properties( SerializationInfo^ info, StreamingContext context ); + //Properties(SerializationInfo^ info, StreamingContext context, native::SerializationRegistryPtr serializationRegistry); internal: @@ -237,9 +239,9 @@ namespace Apache return m_nativeptr->get_shared_ptr(); } - inline static IGeodeSerializable^ CreateDeserializable( ) + inline static IGeodeSerializable^ CreateDeserializable() { - return Create<String^, String^>(); + return Create<TPropKey, TPropValue>(); } private: @@ -283,6 +285,19 @@ namespace Apache Apache::Geode::Client::PropertyVisitorGeneric<TPropKey, TPropValue>^ m_visitor; }; + + /* ref class PropertiesFactory { + public: + PropertiesFactory(native::SerializationRegistryPtr serializationRegistry) + { + m_serializationRegistry = gcnew native_shared_ptr<native::SerializationRegistry>(serializationRegistry); + } + IGeodeSerializable^ CreateDeserializable() { + return Properties<String^, String^>::CreateDeserializable(m_serializationRegistry->get_shared_ptr()); + } + private: + native_shared_ptr<native::SerializationRegistry>^ m_serializationRegistry; + };*/ } // namespace Client } // namespace Geode } // namespace Apache http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/Query.cpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/Query.cpp b/src/clicache/src/Query.cpp index f1041f8..071c51f 100644 --- a/src/clicache/src/Query.cpp +++ b/src/clicache/src/Query.cpp @@ -70,7 +70,7 @@ namespace Apache auto rsptr = apache::geode::client::CacheableVector::create(); for( int index = 0; index < paramList->Length; index++ ) { - auto valueptr = Serializable::GetUnmanagedValueGeneric<Object^>(paramList[index]->GetType(), (Object^)paramList[index]); + auto valueptr = Serializable::GetUnmanagedValueGeneric<Object^>(paramList[index]->GetType(), (Object^)paramList[index], nullptr); rsptr->push_back(valueptr); } http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/Region.cpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/Region.cpp b/src/clicache/src/Region.cpp index f7d4b23..17e9a62 100644 --- a/src/clicache/src/Region.cpp +++ b/src/clicache/src/Region.cpp @@ -15,6 +15,11 @@ * limitations under the License. */ +#include "begin_native.hpp" +#include "geode/Region.hpp" +#include "geode/Cache.hpp" +#include "end_native.hpp" + #include "Region.hpp" #include "Cache.hpp" #include "CacheStatistics.hpp" @@ -45,8 +50,9 @@ namespace Apache generic<class TKey, class TValue> TValue Region<TKey, TValue>::Get(TKey key, Object^ callbackArg) { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); + GC::KeepAlive(m_nativeptr); auto nativeptr = this->get(keyptr, callbackptr); if (nativeptr == nullptr) { @@ -93,7 +99,8 @@ namespace Apache auto rAttributes = this->Attributes; auto poolName = rAttributes->PoolName; if (poolName != nullptr) { - auto pool = PoolManager::Find(poolName); + auto poolManager = gcnew PoolManager(m_nativeptr->get()->getCache()->getPoolManager()); + auto pool = poolManager->Find(poolName); if (pool != nullptr && !pool->Destroyed) { return pool->MultiuserAuthentication; } @@ -109,9 +116,9 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(value); - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(value, m_nativeptr->get()->getCache().get()); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); m_nativeptr->get()->put(keyptr, valueptr, callbackptr); } finally @@ -125,7 +132,8 @@ namespace Apache generic<class TKey, class TValue> TValue Region<TKey, TValue>::default::get(TKey key) { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); + GC::KeepAlive(m_nativeptr); auto nativeptr = this->get(keyptr); if (nativeptr == nullptr) { @@ -142,8 +150,8 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(value); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(value, m_nativeptr->get()->getCache().get()); m_nativeptr->get()->put(keyptr, valueptr); } finally @@ -233,15 +241,17 @@ namespace Apache { return false; } - native::DataOutput out1; - native::DataOutput out2; - val1->toData(out1); - val2->toData(out2); - if (out1.getBufferLength() != out2.getBufferLength()) + std::unique_ptr<native::DataOutput> out1 = m_nativeptr->get_shared_ptr()->getCache()->createDataOutput(); + std::unique_ptr<native::DataOutput> out2 = m_nativeptr->get_shared_ptr()->getCache()->createDataOutput(); + val1->toData(*out1); + val2->toData(*out2); + + GC::KeepAlive(m_nativeptr); + if (out1->getBufferLength() != out2->getBufferLength()) { return false; } - else if (memcmp(out1.getBuffer(), out2.getBuffer(), out1.getBufferLength()) != 0) + else if (memcmp(out1->getBuffer(), out2->getBuffer(), out1->getBufferLength()) != 0) { return false; } @@ -253,7 +263,8 @@ namespace Apache generic<class TKey, class TValue> bool Region<TKey, TValue>::Contains(KeyValuePair<TKey, TValue> keyValuePair) { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(keyValuePair.Key); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(keyValuePair.Key, m_nativeptr->get()->getCache().get()); + GC::KeepAlive(m_nativeptr); auto nativeptr = this->get(keyptr); //This means that key is not present. if (nativeptr == nullptr) { @@ -270,7 +281,7 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); return m_nativeptr->get()->containsKeyOnServer(keyptr); } finally @@ -285,7 +296,8 @@ namespace Apache bool Region<TKey, TValue>::TryGetValue(TKey key, TValue %val) { _GF_MG_EXCEPTION_TRY2/* due to auto replace */ - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); + GC::KeepAlive(m_nativeptr); auto nativeptr = this->get(keyptr); if (nativeptr == nullptr) { val = TValue(); @@ -358,8 +370,8 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(value); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(value, m_nativeptr->get()->getCache().get()); m_nativeptr->get()->create(keyptr, valueptr); } finally @@ -377,8 +389,8 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(keyValuePair.Key); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(keyValuePair.Value); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(keyValuePair.Key, m_nativeptr->get()->getCache().get()); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(keyValuePair.Value, m_nativeptr->get()->getCache().get()); m_nativeptr->get()->create(keyptr, valueptr); } finally @@ -396,9 +408,9 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(value); - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(value, m_nativeptr->get()->getCache().get()); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); m_nativeptr->get()->create(keyptr, valueptr, callbackptr); } finally @@ -416,7 +428,7 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); return m_nativeptr->get()->removeEx(keyptr); } finally @@ -435,8 +447,8 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); return m_nativeptr->get()->removeEx(keyptr, callbackptr); } finally @@ -454,8 +466,8 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(keyValuePair.Key); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(keyValuePair.Value); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(keyValuePair.Key, m_nativeptr->get()->getCache().get()); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(keyValuePair.Value, m_nativeptr->get()->getCache().get()); return m_nativeptr->get()->remove(keyptr, valueptr); } finally @@ -473,9 +485,10 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(value); - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(value, m_nativeptr->get()->getCache().get()); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); + GC::KeepAlive(m_nativeptr); return m_nativeptr->get()->remove(keyptr, valueptr, callbackptr); } finally @@ -503,7 +516,7 @@ namespace Apache try { - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); m_nativeptr->get()->invalidateRegion(callbackptr); } finally @@ -531,7 +544,7 @@ namespace Apache try { - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); m_nativeptr->get()->destroyRegion(callbackptr); } finally @@ -560,8 +573,8 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); m_nativeptr->get()->invalidate(keyptr, callbackptr); } finally @@ -591,8 +604,8 @@ namespace Apache native::HashMapOfCacheable nativeMap; for each (KeyValuePair<TKey, TValue> keyValPair in map) { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(keyValPair.Key); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(keyValPair.Value); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(keyValPair.Key, m_nativeptr->get()->getCache().get()); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(keyValPair.Value, m_nativeptr->get()->getCache().get()); nativeMap.emplace(keyptr, valueptr); } try @@ -616,11 +629,11 @@ namespace Apache native::HashMapOfCacheable nativeMap; for each (KeyValuePair<TKey, TValue> keyValPair in map) { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(keyValPair.Key); - native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(keyValPair.Value); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(keyValPair.Key, m_nativeptr->get()->getCache().get()); + native::CacheablePtr valueptr = Serializable::GetUnmanagedValueGeneric<TValue>(keyValPair.Value, m_nativeptr->get()->getCache().get()); nativeMap.emplace(keyptr, valueptr); } - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); try { m_nativeptr->get()->putAll(nativeMap, timeout, callbackptr); @@ -661,7 +674,7 @@ namespace Apache for each(TKey item in keys) { vecKeys.push_back( - Serializable::GetUnmanagedValueGeneric<TKey>(item)); + Serializable::GetUnmanagedValueGeneric<TKey>(item, m_nativeptr->get()->getCache().get())); } native::HashMapOfCacheablePtr valuesPtr; @@ -716,7 +729,7 @@ namespace Apache for each(TKey item in keys) { vecKeys.push_back( - Serializable::GetUnmanagedValueGeneric<TKey>(item)); + Serializable::GetUnmanagedValueGeneric<TKey>(item, m_nativeptr->get()->getCache().get())); } native::HashMapOfCacheablePtr valuesPtr; @@ -728,7 +741,7 @@ namespace Apache exceptionsPtr = std::make_shared<native::HashMapOfException>(); } - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); try { @@ -779,9 +792,9 @@ namespace Apache native::VectorOfCacheableKey vecKeys; for each(TKey item in keys) - vecKeys.push_back(Serializable::GetUnmanagedValueGeneric<TKey>(item)); + vecKeys.push_back(Serializable::GetUnmanagedValueGeneric<TKey>(item, m_nativeptr->get()->getCache().get())); - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); try { @@ -968,7 +981,7 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); auto nativeptr = m_nativeptr->get()->getEntry(keyptr); return RegionEntry<TKey, TValue>::Create(nativeptr); } @@ -1041,7 +1054,7 @@ namespace Apache try { - native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key); + native::CacheableKeyPtr keyptr = Serializable::GetUnmanagedValueGeneric<TKey>(key, m_nativeptr->get()->getCache().get()); return m_nativeptr->get()->containsValueForKey(keyptr); } finally @@ -1079,7 +1092,7 @@ namespace Apache _GF_MG_EXCEPTION_TRY2/* due to auto replace */ try { - native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg); + native::UserDataPtr callbackptr = Serializable::GetUnmanagedValueGeneric<Object^>(callbackArg, m_nativeptr->get()->getCache().get()); m_nativeptr->get()->clear(callbackptr); } finally @@ -1170,7 +1183,7 @@ namespace Apache for each(TKey item in keys) { - vecKeys.push_back(Serializable::GetUnmanagedValueGeneric<TKey>(item)); + vecKeys.push_back(Serializable::GetUnmanagedValueGeneric<TKey>(item, m_nativeptr->get()->getCache().get())); } try { @@ -1197,7 +1210,7 @@ namespace Apache for each(TKey item in keys) { vecKeys.push_back( - Serializable::GetUnmanagedValueGeneric<TKey>(item)); + Serializable::GetUnmanagedValueGeneric<TKey>(item, m_nativeptr->get()->getCache().get())); } try http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/ResultCollector.cpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/ResultCollector.cpp b/src/clicache/src/ResultCollector.cpp index 9b0e249..595bd9c 100644 --- a/src/clicache/src/ResultCollector.cpp +++ b/src/clicache/src/ResultCollector.cpp @@ -40,7 +40,7 @@ namespace Apache try { - auto result = std::shared_ptr<native::Cacheable>(SafeGenericMSerializableConvert((IGeodeSerializable^)rs)); + auto result = std::shared_ptr<native::Cacheable>(SafeGenericMSerializableConvert((IGeodeSerializable^)rs, nullptr)); m_nativeptr->get()->addResult(result); } finally http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/Serializable.cpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/Serializable.cpp b/src/clicache/src/Serializable.cpp index 5771095..8760bab 100644 --- a/src/clicache/src/Serializable.cpp +++ b/src/clicache/src/Serializable.cpp @@ -16,7 +16,11 @@ */ #include "begin_native.hpp" +#include <geode/Cache.hpp> #include <SerializationRegistry.hpp> +#include <geode/PoolManager.hpp> +#include <CacheImpl.hpp> +#include "CacheRegionHelper.hpp" #include "end_native.hpp" #include <msclr/lock.h> @@ -42,6 +46,9 @@ #include "CacheableIdentityHashMap.hpp" #include "IPdxSerializer.hpp" #include "impl/DotNetTypes.hpp" +#include "CacheRegionHelper.hpp" +#include "Cache.hpp" + #pragma warning(disable:4091) using namespace System::Reflection; @@ -255,27 +262,27 @@ namespace Apache return (Apache::Geode::Client::Serializable^)CacheableStringArray::Create(value); } - System::Int32 Serializable::GetPDXIdForType(const char* poolName, IGeodeSerializable^ pdxType) + System::Int32 Serializable::GetPDXIdForType(const char* poolName, IGeodeSerializable^ pdxType, const native::Cache* cache) { native::CacheablePtr kPtr(SafeMSerializableConvertGeneric(pdxType)); - return native::SerializationRegistry::GetPDXIdForType(poolName, kPtr); + return CacheRegionHelper::getCacheImpl(cache)->getSerializationRegistry()->GetPDXIdForType(cache->getPoolManager().find(poolName), kPtr); } - IGeodeSerializable^ Serializable::GetPDXTypeById(const char* poolName, System::Int32 typeId) - { - SerializablePtr sPtr = native::SerializationRegistry::GetPDXTypeById(poolName, typeId); + IGeodeSerializable^ Serializable::GetPDXTypeById(const char* poolName, System::Int32 typeId, const native::Cache* cache) + { + SerializablePtr sPtr = CacheRegionHelper::getCacheImpl(cache)->getSerializationRegistry()->GetPDXTypeById(cache->getPoolManager().find(poolName), typeId); return SafeUMSerializableConvertGeneric(sPtr); } - int Serializable::GetEnumValue(Internal::EnumInfo^ ei) + int Serializable::GetEnumValue(Internal::EnumInfo^ ei, const native::Cache* cache) { native::CacheablePtr kPtr(SafeMSerializableConvertGeneric(ei)); - return native::SerializationRegistry::GetEnumValue(kPtr); + return CacheRegionHelper::getCacheImpl(cache)->getSerializationRegistry()->GetEnumValue(cache->getPoolManager().getAll().begin()->second, kPtr); } - Internal::EnumInfo^ Serializable::GetEnum(int val) + Internal::EnumInfo^ Serializable::GetEnum(int val, const native::Cache* cache) { - SerializablePtr sPtr = native::SerializationRegistry::GetEnum(val); + SerializablePtr sPtr = CacheRegionHelper::getCacheImpl(cache)->getSerializationRegistry()->GetEnum(cache->getPoolManager().getAll().begin()->second, val); return (Internal::EnumInfo^)SafeUMSerializableConvertGeneric(sPtr); } @@ -511,21 +518,22 @@ namespace Apache return retVal(); } - void Serializable::RegisterPDXManagedCacheableKey(bool appDomainEnable) + void Serializable::RegisterPDXManagedCacheableKey(bool appDomainEnable, Cache^ cache) { + CacheImpl *cacheImpl = CacheRegionHelper::getCacheImpl(cache->GetNative().get()); if (!appDomainEnable) { - native::SerializationRegistry::addType(native::GeodeTypeIdsImpl::PDX, + cacheImpl->getSerializationRegistry()->addType(native::GeodeTypeIdsImpl::PDX, &native::PdxManagedCacheableKey::CreateDeserializable); } else { - native::SerializationRegistry::addType(native::GeodeTypeIdsImpl::PDX, - &native::PdxManagedCacheableKeyBytes::CreateDeserializable); + cacheImpl->getSerializationRegistry()->addType(native::GeodeTypeIdsImpl::PDX, + std::bind(native::PdxManagedCacheableKeyBytes::CreateDeserializable, cache->GetNative().get())); } } - void Apache::Geode::Client::Serializable::RegisterTypeGeneric(TypeFactoryMethodGeneric^ creationMethod) + void Apache::Geode::Client::Serializable::RegisterTypeGeneric(TypeFactoryMethodGeneric^ creationMethod, Cache^ cache) { if (creationMethod == nullptr) { throw gcnew IllegalArgumentException("Serializable.RegisterType(): " @@ -539,7 +547,7 @@ namespace Apache if (!ManagedDelegatesGeneric->ContainsKey(classId)) ManagedDelegatesGeneric->Add(classId, creationMethod); - DelegateWrapperGeneric^ delegateObj = gcnew DelegateWrapperGeneric(creationMethod); + DelegateWrapperGeneric^ delegateObj = gcnew DelegateWrapperGeneric(creationMethod, cache); TypeFactoryNativeMethodGeneric^ nativeDelegate = gcnew TypeFactoryNativeMethodGeneric(delegateObj, &DelegateWrapperGeneric::NativeDelegateGeneric); @@ -554,22 +562,20 @@ namespace Apache DelegateMapGeneric[tmp->ClassId] = creationMethod; _GF_MG_EXCEPTION_TRY2 - - native::Serializable::registerType((native::TypeFactoryMethod) - System::Runtime::InteropServices::Marshal:: - GetFunctionPointerForDelegate(nativeDelegate).ToPointer()); + CacheImpl *cacheImpl = CacheRegionHelper::getCacheImpl(cache->GetNative().get()); + cacheImpl->getSerializationRegistry()->addType((native::Serializable*(*)())System::Runtime::InteropServices::Marshal::GetFunctionPointerForDelegate(nativeDelegate).ToPointer()); _GF_MG_EXCEPTION_CATCH_ALL2 } void Apache::Geode::Client::Serializable::RegisterTypeGeneric(Byte typeId, - TypeFactoryMethodGeneric^ creationMethod, Type^ type) + TypeFactoryMethodGeneric^ creationMethod, Type^ type, Cache^ cache) { if (creationMethod == nullptr) { throw gcnew IllegalArgumentException("Serializable.RegisterType(): " "null TypeFactoryMethod delegate passed"); } - DelegateWrapperGeneric^ delegateObj = gcnew DelegateWrapperGeneric(creationMethod); + DelegateWrapperGeneric^ delegateObj = gcnew DelegateWrapperGeneric(creationMethod, cache); TypeFactoryNativeMethodGeneric^ nativeDelegate = gcnew TypeFactoryNativeMethodGeneric(delegateObj, &DelegateWrapperGeneric::NativeDelegateGeneric); @@ -591,17 +597,18 @@ namespace Apache try { + CacheImpl *cacheImpl = CacheRegionHelper::getCacheImpl(cache->GetNative().get()); if (tmp->ClassId < 0xa0000000) { - native::SerializationRegistry::addType(typeId, - (native::TypeFactoryMethod)System::Runtime::InteropServices:: + cacheImpl->getSerializationRegistry()->addType(typeId, + (native::Serializable*(*)())System::Runtime::InteropServices:: Marshal::GetFunctionPointerForDelegate( nativeDelegate).ToPointer()); } else {//special case for CacheableUndefined type - native::SerializationRegistry::addType2(typeId, - (native::TypeFactoryMethod)System::Runtime::InteropServices:: + cacheImpl->getSerializationRegistry()->addType2(typeId, + (native::Serializable*(*)())System::Runtime::InteropServices:: Marshal::GetFunctionPointerForDelegate( nativeDelegate).ToPointer()); } @@ -613,12 +620,12 @@ namespace Apache } } - void Apache::Geode::Client::Serializable::UnregisterTypeGeneric(Byte typeId) + void Apache::Geode::Client::Serializable::UnregisterTypeGeneric(Byte typeId, Cache^ cache) { BuiltInDelegatesGeneric->Remove(typeId); _GF_MG_EXCEPTION_TRY2 - native::SerializationRegistry::removeType(typeId); + CacheRegionHelper::getCacheImpl(cache->GetNative().get())->getSerializationRegistry()->removeType(typeId); _GF_MG_EXCEPTION_CATCH_ALL2 } @@ -935,23 +942,23 @@ namespace Apache } generic<class TKey> - native::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric(TKey key) + native::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric(TKey key, native::Cache* cache) { //System::Type^ managedType = TKey::typeid; if (key != nullptr) { //System::Type^ managedType = key->GetType(); - return GetUnmanagedValueGeneric(key->GetType(), key); + return GetUnmanagedValueGeneric(key->GetType(), key, cache); } return nullptr; } generic<class TKey> - native::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric(TKey key, bool isAciiChar) + native::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric(TKey key, bool isAciiChar, native::Cache* cache) { //System::Type^ managedType = TKey::typeid; if (key != nullptr) { //System::Type^ managedType = key->GetType(); - return GetUnmanagedValueGeneric(key->GetType(), key, isAciiChar); + return GetUnmanagedValueGeneric(key->GetType(), key, isAciiChar, cache); } return nullptr; } @@ -1066,14 +1073,14 @@ namespace Apache generic<class TKey> native::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric( - Type^ managedType, TKey key) + Type^ managedType, TKey key, native::Cache* cache) { - return GetUnmanagedValueGeneric(managedType, key, false); + return GetUnmanagedValueGeneric(managedType, key, false, cache); } generic<class TKey> native::CacheableKeyPtr Serializable::GetUnmanagedValueGeneric( - Type^ managedType, TKey key, bool isAsciiChar) + Type^ managedType, TKey key, bool isAsciiChar, native::Cache* cache) { Byte typeId = Apache::Geode::Client::Serializable::GetManagedTypeMappingGeneric(managedType); @@ -1107,122 +1114,122 @@ namespace Apache } case native::GeodeTypeIds::CacheableBytes: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableBytes::Create((array<Byte>^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableBytes::Create((array<Byte>^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableDoubleArray: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableDoubleArray::Create((array<Double>^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableDoubleArray::Create((array<Double>^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableFloatArray: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableFloatArray::Create((array<float>^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableFloatArray::Create((array<float>^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableInt16Array: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt16Array::Create((array<Int16>^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt16Array::Create((array<Int16>^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableInt32Array: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt32Array::Create((array<Int32>^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt32Array::Create((array<Int32>^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableInt64Array: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt64Array::Create((array<Int64>^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableInt64Array::Create((array<Int64>^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableStringArray: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableStringArray::Create((array<String^>^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableStringArray::Create((array<String^>^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableFileName: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)(Apache::Geode::Client::CacheableFileName^)key)); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)(Apache::Geode::Client::CacheableFileName^)key, cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableHashTable://collection::hashtable { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableHashTable::Create((System::Collections::Hashtable^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableHashTable::Create((System::Collections::Hashtable^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableHashMap://generic dictionary { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableHashMap::Create((System::Collections::IDictionary^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableHashMap::Create((System::Collections::IDictionary^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableVector://collection::arraylist { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)CacheableVector::Create((System::Collections::IList^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)CacheableVector::Create((System::Collections::IList^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableArrayList://generic ilist { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableArrayList::Create((System::Collections::IList^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableArrayList::Create((System::Collections::IList^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableLinkedList://generic linked list { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableLinkedList::Create((System::Collections::Generic::LinkedList<Object^>^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableLinkedList::Create((System::Collections::Generic::LinkedList<Object^>^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableStack: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert(Apache::Geode::Client::CacheableStack::Create((System::Collections::ICollection^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert(Apache::Geode::Client::CacheableStack::Create((System::Collections::ICollection^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case 7: //GeodeClassIds::CacheableManagedObject { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableObject^)key)); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableObject^)key, cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case 8://GeodeClassIds::CacheableManagedObjectXml { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableObjectXml^)key)); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableObjectXml^)key, cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableObjectArray: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableObjectArray^)key)); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableObjectArray^)key, cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableIdentityHashMap: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert(Apache::Geode::Client::CacheableIdentityHashMap::Create((System::Collections::IDictionary^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert(Apache::Geode::Client::CacheableIdentityHashMap::Create((System::Collections::IDictionary^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableHashSet://no need of it, default case should work { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableHashSet^)key)); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableHashSet^)key, cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableLinkedHashSet://no need of it, default case should work { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableLinkedHashSet^)key)); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((Apache::Geode::Client::CacheableLinkedHashSet^)key, cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CacheableDate: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableDate::Create((System::DateTime)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CacheableDate::Create((System::DateTime)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::BooleanArray: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::BooleanArray::Create((array<bool>^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::BooleanArray::Create((array<bool>^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } case native::GeodeTypeIds::CharArray: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CharArray::Create((array<Char>^)key))); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert((IGeodeSerializable^)Apache::Geode::Client::CharArray::Create((array<Char>^)key), cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } default: { - native::CacheablePtr kPtr(SafeGenericMSerializableConvert(key)); + native::CacheablePtr kPtr(SafeGenericMSerializableConvert(key, cache)); return std::dynamic_pointer_cast<native::CacheableKey>(kPtr); } } http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/Serializable.hpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/Serializable.hpp b/src/clicache/src/Serializable.hpp index 999dc80..6f9e51f 100644 --- a/src/clicache/src/Serializable.hpp +++ b/src/clicache/src/Serializable.hpp @@ -31,6 +31,7 @@ #include "Log.hpp" #include <vcclr.h> #include "IPdxTypeMapper.hpp" + using namespace System::Reflection; using namespace System; using namespace System::Collections::Generic; @@ -45,6 +46,8 @@ namespace Apache interface class IPdxSerializable; interface class IPdxSerializer; + ref class Cache; + /// <summary> /// Signature of native function delegates passed to native /// <c>native::Serializable::registerType</c>. @@ -246,7 +249,8 @@ namespace Apache /// to a <c>Serializable</c>. /// </summary> static operator Apache::Geode::Client::Serializable^ (array<String^>^ value); - + + /// <summary> /// Register an instance factory method for a given type. /// This should be used when registering types that implement @@ -263,7 +267,7 @@ namespace Apache /// in registering the type; check <c>Utils::LastError</c> for more /// information in the latter case. /// </exception> - static void RegisterTypeGeneric(TypeFactoryMethodGeneric^ creationMethod); + static void RegisterTypeGeneric(TypeFactoryMethodGeneric^ creationMethod, Cache^ cache); /// <summary> /// Set the PDX serializer for the cache. If this serializer is set, @@ -298,10 +302,10 @@ namespace Apache internal: - static System::Int32 GetPDXIdForType(const char* poolName, IGeodeSerializable^ pdxType); - static IGeodeSerializable^ GetPDXTypeById(const char* poolName, System::Int32 typeId); + static System::Int32 GetPDXIdForType(const char* poolName, IGeodeSerializable^ pdxType, const native::Cache* cache); + static IGeodeSerializable^ GetPDXTypeById(const char* poolName, System::Int32 typeId, const native::Cache* cache); static IPdxSerializable^ Serializable::GetPdxType(String^ className); - static void RegisterPDXManagedCacheableKey(bool appDomainEnable); + static void RegisterPDXManagedCacheableKey(bool appDomainEnable, Cache^ cache); static bool IsObjectAndPdxSerializerRegistered(String^ className); static IPdxSerializer^ GetPdxSerializer(); @@ -311,8 +315,8 @@ namespace Apache static Type^ GetType(String^ className); - static int GetEnumValue(Internal::EnumInfo^ ei); - static Internal::EnumInfo^ GetEnum(int val); + static int GetEnumValue(Internal::EnumInfo^ ei, const native::Cache* cache); + static Internal::EnumInfo^ GetEnum(int val, const native::Cache* cache); static Dictionary<String^, PdxTypeFactoryMethod^>^ PdxDelegateMap = gcnew Dictionary<String^, PdxTypeFactoryMethod^>(); @@ -441,31 +445,31 @@ namespace Apache /// <exception cref="IllegalArgumentException"> /// if the method is null /// </exception> - static void RegisterTypeGeneric(Byte typeId, - TypeFactoryMethodGeneric^ creationMethod, Type^ type); + static void RegisterTypeGeneric(Byte typeId, TypeFactoryMethodGeneric^ creationMethod, Type^ type, Cache^ cache); + /// <summary> /// Unregister the type with the given typeId /// </summary> /// <param name="typeId">typeId of the type to unregister.</param> - static void UnregisterTypeGeneric(Byte typeId); + static void UnregisterTypeGeneric(Byte typeId, Cache^ cache); generic<class TValue> static TValue GetManagedValueGeneric(native::SerializablePtr val); generic<class TKey> - static native::CacheableKeyPtr GetUnmanagedValueGeneric(TKey key); + static native::CacheableKeyPtr GetUnmanagedValueGeneric(TKey key, native::Cache* cache); generic<class TKey> - static native::CacheableKeyPtr GetUnmanagedValueGeneric(TKey key, bool isAciiChar); + static native::CacheableKeyPtr GetUnmanagedValueGeneric(TKey key, bool isAciiChar, native::Cache* cache); generic<class TKey> static native::CacheableKeyPtr GetUnmanagedValueGeneric( - Type^ managedType, TKey key); + Type^ managedType, TKey key, native::Cache* cache); generic<class TKey> static native::CacheableKeyPtr GetUnmanagedValueGeneric( - Type^ managedType, TKey key, bool isAsciiChar); + Type^ managedType, TKey key, bool isAsciiChar, native::Cache* cache); /// <summary> /// Static map of <c>TypeFactoryMethod</c> delegates created http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/StatisticsFactory.cpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/StatisticsFactory.cpp b/src/clicache/src/StatisticsFactory.cpp index dd100e1..79cfc44 100644 --- a/src/clicache/src/StatisticsFactory.cpp +++ b/src/clicache/src/StatisticsFactory.cpp @@ -16,13 +16,14 @@ */ +#include "begin_native.hpp" +#include "statistics/StatisticsManager.hpp" +#include "end_native.hpp" -//#include "geode_includes.hpp" #include "StatisticsFactory.hpp" #include "StatisticsType.hpp" #include "StatisticDescriptor.hpp" #include "Statistics.hpp" - #include "impl/ManagedString.hpp" #include "ExceptionTypes.hpp" #include "impl/SafeConvert.hpp" @@ -35,21 +36,23 @@ namespace Apache namespace Client { - StatisticsFactory^ StatisticsFactory::GetExistingInstance() - { - _GF_MG_EXCEPTION_TRY2/* due to auto replace */ + // TODO globals - pass in distributed system + //StatisticsFactory^ StatisticsFactory::GetExistingInstance(DistributedSystem^ distributedSystem) + //{ + // _GF_MG_EXCEPTION_TRY2/* due to auto replace */ - return StatisticsFactory::Create(apache::geode::statistics::StatisticsFactory::getExistingInstance()); - _GF_MG_EXCEPTION_CATCH_ALL2/* due to auto replace */ - } + // return StatisticsFactory::Create(distributedSystem->getStatisticsManager()->getStatisticsFactory()); + + // _GF_MG_EXCEPTION_CATCH_ALL2/* due to auto replace */ + //} StatisticDescriptor^ StatisticsFactory::CreateIntCounter( String^ name, String^ description,String^ units ) { return CreateIntCounter(name,description,units,true); } - StatisticDescriptor^ StatisticsFactory::CreateIntCounter(String^ name, String^ description,String^ units, int8_t largerBetter) + StatisticDescriptor^ StatisticsFactory::CreateIntCounter(String^ name, String^ description,String^ units, bool largerBetter) { ManagedString mg_name( name ); ManagedString mg_description( description ); @@ -66,7 +69,7 @@ namespace Apache return CreateLongCounter(name,description,units,true); } - StatisticDescriptor^ StatisticsFactory::CreateLongCounter( String^ name, String^ description,String^ units, int8_t largerBetter ) + StatisticDescriptor^ StatisticsFactory::CreateLongCounter( String^ name, String^ description,String^ units, bool largerBetter ) { ManagedString mg_name( name ); ManagedString mg_description( description ); @@ -83,7 +86,7 @@ namespace Apache return CreateDoubleCounter(name,description,units,true); } - StatisticDescriptor^ StatisticsFactory::CreateDoubleCounter( String^ name, String^ description, String^ units, int8_t largerBetter ) + StatisticDescriptor^ StatisticsFactory::CreateDoubleCounter( String^ name, String^ description, String^ units, bool largerBetter ) { ManagedString mg_name( name ); ManagedString mg_description( description ); @@ -101,7 +104,7 @@ namespace Apache return CreateIntGauge(name,description,units,false); } - StatisticDescriptor^ StatisticsFactory::CreateIntGauge( String^ name, String^ description, String^ units, int8_t largerBetter ) + StatisticDescriptor^ StatisticsFactory::CreateIntGauge( String^ name, String^ description, String^ units, bool largerBetter ) { ManagedString mg_name( name ); ManagedString mg_description( description ); @@ -118,7 +121,7 @@ namespace Apache return CreateLongGauge(name,description,units,false); } - StatisticDescriptor^ StatisticsFactory::CreateLongGauge( String^ name, String^ description, String^ units, int8_t largerBetter ) + StatisticDescriptor^ StatisticsFactory::CreateLongGauge( String^ name, String^ description, String^ units, bool largerBetter ) { ManagedString mg_name( name ); ManagedString mg_description( description ); @@ -135,7 +138,7 @@ namespace Apache return CreateDoubleGauge(name,description,units,false); } - StatisticDescriptor^ StatisticsFactory::CreateDoubleGauge( String^ name, String^ description, String^ units,int8_t largerBetter ) + StatisticDescriptor^ StatisticsFactory::CreateDoubleGauge( String^ name, String^ description, String^ units, bool largerBetter ) { ManagedString mg_name( name ); ManagedString mg_description( description ); http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/StatisticsFactory.hpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/StatisticsFactory.hpp b/src/clicache/src/StatisticsFactory.hpp index 7a5d330..efce9c5 100644 --- a/src/clicache/src/StatisticsFactory.hpp +++ b/src/clicache/src/StatisticsFactory.hpp @@ -66,14 +66,14 @@ namespace Apache /// Return a pre-existing statistics factory. Typically configured through /// creation of a distributed system. /// </summary> - static StatisticsFactory^ GetExistingInstance(); + //static StatisticsFactory^ GetExistingInstance(); /// <summary> /// Creates and returns an int counter <see cref="StatisticDescriptor" /> /// with the given <c>name</c>, <c>description</c>, /// <c>units</c>, and with larger values indicating better performance. /// </summary> - virtual StatisticDescriptor^ CreateIntCounter(String^ name, String^ description, String^ units, int8_t largerBetter); + virtual StatisticDescriptor^ CreateIntCounter(String^ name, String^ description, String^ units, bool largerBetter); /// <summary> /// Creates and returns an int counter <see cref="StatisticDescriptor" /> @@ -87,7 +87,7 @@ namespace Apache /// with the given <c>name</c>, <c>description</c>, /// <c>units</c>, and with larger values indicating better performance. /// </summary> - virtual StatisticDescriptor^ CreateLongCounter(String^ name, String^ description, String^ units, int8_t largerBetter); + virtual StatisticDescriptor^ CreateLongCounter(String^ name, String^ description, String^ units, bool largerBetter); /// <summary> /// Creates and returns an long counter <see cref="StatisticDescriptor" /> @@ -102,7 +102,7 @@ namespace Apache /// <c>units</c>, and with larger values indicating better performance. /// </summary> - virtual StatisticDescriptor^ CreateDoubleCounter(String^ name, String^ description, String^ units, int8_t largerBetter); + virtual StatisticDescriptor^ CreateDoubleCounter(String^ name, String^ description, String^ units, bool largerBetter); /// <summary> /// Creates and returns an double counter <see cref="StatisticDescriptor" /> @@ -116,7 +116,7 @@ namespace Apache /// with the given <c>name</c>, <c>description</c>, /// <c>units</c>, and with smaller values indicating better performance. /// </summary> - virtual StatisticDescriptor^ CreateIntGauge(String^ name, String^ description, String^ units, int8_t largerBetter); + virtual StatisticDescriptor^ CreateIntGauge(String^ name, String^ description, String^ units, bool largerBetter); /// <summary> /// Creates and returns an int gauge <see cref="StatisticDescriptor" /> @@ -130,7 +130,7 @@ namespace Apache /// with the given <c>name</c>, <c>description</c>, /// <c>units</c>, and with smaller values indicating better performance. /// </summary> - virtual StatisticDescriptor^ CreateLongGauge(String^ name, String^ description, String^ units, int8_t largerBetter); + virtual StatisticDescriptor^ CreateLongGauge(String^ name, String^ description, String^ units, bool largerBetter); /// <summary> /// Creates and returns an long gauge <see cref="StatisticDescriptor" /> @@ -144,7 +144,7 @@ namespace Apache /// with the given <c>name</c>, <c>description</c>, /// <c>units</c>, and with smaller values indicating better performance. /// </summary> - virtual StatisticDescriptor^ CreateDoubleGauge(String^ name, String^ description, String^ units, int8_t largerBetter); + virtual StatisticDescriptor^ CreateDoubleGauge(String^ name, String^ description, String^ units, bool largerBetter); /// <summary> /// Creates and returns an double gauge <see cref="StatisticDescriptor" /> http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/impl/AuthenticatedCache.cpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/impl/AuthenticatedCache.cpp b/src/clicache/src/impl/AuthenticatedCache.cpp index a8e2b15..acd96c0 100644 --- a/src/clicache/src/impl/AuthenticatedCache.cpp +++ b/src/clicache/src/impl/AuthenticatedCache.cpp @@ -15,7 +15,12 @@ * limitations under the License. */ -//#include "../geode_includes.hpp" + +#include "begin_native.hpp" +#include "CacheRegionHelper.hpp" +#include "CacheImpl.hpp" +#include "end_native.hpp" + #include "../Cache.hpp" #include "../DistributedSystem.hpp" #include "../Region.hpp" @@ -25,6 +30,7 @@ #include "../Execution.hpp" #include "AuthenticatedCache.hpp" #include "PdxInstanceFactoryImpl.hpp" + using namespace System; namespace Apache @@ -123,7 +129,7 @@ namespace Apache IPdxInstanceFactory^ AuthenticatedCache::CreatePdxInstanceFactory(String^ className) { - return gcnew Internal::PdxInstanceFactoryImpl(className); + return gcnew Internal::PdxInstanceFactoryImpl(className, native::CacheRegionHelper::getCacheImpl(m_nativeptr->get())->getCache()); } } // namespace Client } // namespace Geode http://git-wip-us.apache.org/repos/asf/geode-native/blob/da389793/src/clicache/src/impl/CacheLoader.hpp ---------------------------------------------------------------------- diff --git a/src/clicache/src/impl/CacheLoader.hpp b/src/clicache/src/impl/CacheLoader.hpp index 9f8a049..c785338 100644 --- a/src/clicache/src/impl/CacheLoader.hpp +++ b/src/clicache/src/impl/CacheLoader.hpp @@ -70,7 +70,7 @@ namespace Apache Object^ ghelper = Serializable::GetManagedValueGeneric<Object^>(helper); //return SafeMSerializableConvertGeneric(m_loader->Load(gregion, gkey, ghelper)); - return Serializable::GetUnmanagedValueGeneric<TValue>(m_loader->Load(gregion, gkey, ghelper)); + return Serializable::GetUnmanagedValueGeneric<TValue>(m_loader->Load(gregion, gkey, ghelper), nullptr); } virtual void close( const apache::geode::client::RegionPtr& region )