geode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r..@apache.org
Subject [10/51] [partial] incubator-geode git commit: Add source for geode c++ and .net clients
Date Thu, 19 May 2016 15:14:17 GMT
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/src/clicache/RegionM.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/src/clicache/RegionM.hpp b/geode-client-native/src/clicache/RegionM.hpp
new file mode 100644
index 0000000..3b44a4e
--- /dev/null
+++ b/geode-client-native/src/clicache/RegionM.hpp
@@ -0,0 +1,5063 @@
+/*=========================================================================
+ * Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * more patents listed at http://www.pivotal.io/patents.
+ *=========================================================================
+ */
+
+#pragma once
+
+#include "gf_defs.hpp"
+#include "cppcache/Cache.hpp"
+#include "impl/NativeWrapper.hpp"
+#include "CacheableHashMapM.hpp"
+#include "LogM.hpp"
+#include "ExceptionTypesM.hpp"
+
+using namespace System;
+using namespace System::Collections::Generic;
+
+namespace GemStone
+{
+  namespace GemFire
+  {
+    namespace Cache
+    {
+
+      ref class Cache;
+      ref class RegionEntry;
+      ref class RegionAttributes;
+      ref class AttributesMutator;
+      ref class CacheStatistics;
+      interface class IGFSerializable;
+      ref class Serializable;
+      ref class CacheableKey;
+      interface class ISelectResults;
+      interface class IRegionService;
+
+      /// <summary>
+      /// Encapsulates a concrete region of cached data.
+      /// </summary>
+      /// <remarks>
+      /// This class manages subregions and cached data. Each region
+      /// can contain multiple subregions and entries for data.
+      /// Regions provide a hierachical name space
+      /// within the cache. Also, a region can be used to group cached
+      /// objects for management purposes.
+      ///
+      /// Entries managed by the region are key-value pairs. A set of region attributes
+      /// is associated with the region when it is created.
+      ///
+      /// The Region interface basically contains two set of APIs: Region management
+      /// APIs and (potentially) distributed operations on entries. Non-distributed
+      /// operations on entries  are provided by <c>RegionEntry</c>.
+      ///
+      /// Each <c>Cache</c> defines regions called the root regions.
+      /// User applications can use the root regions to create subregions
+      /// for isolated name spaces and object grouping.
+      ///
+      /// A region's name can be any string, except that it must not contain
+      /// the region name separator, a forward slash (/).
+      ///
+      /// <c>Regions</c>  can be referenced by a relative path name from any region
+      /// higher in the hierarchy in <see cref="Region.GetSubRegion" />. You can get the relative
+      /// path from the root region with <see cref="Region.FullPath" />. The name separator
+      /// is used to concatenate all the region names together from the root, starting
+      /// with the root's subregions.
+      /// </remarks>
+      /// <see cref="RegionAttributes" />
+      [Obsolete("Use classes and APIs from the GemStone.GemFire.Cache.Generic namespace")]
+      public ref class Region
+        : public Internal::SBWrap<gemfire::Region>
+      {
+      public:
+
+        /// <summary>
+        /// Gets the region name.
+        /// </summary>
+        /// <returns>
+        /// region's name
+        /// </returns>
+        property String^ Name
+        {
+          String^ get( );
+        }
+
+        /// <summary>
+        /// Gets the region's full path, which can be used to get this region object
+        /// with <see cref="Cache.GetRegion" />.
+        /// </summary>
+        /// <returns>
+        /// region's pathname
+        /// </returns>
+        property String^ FullPath
+        {
+          String^ get( );
+        }
+
+        /// <summary>
+        /// Gets the parent region.
+        /// </summary>
+        /// <returns>
+        /// region's parent, if any, or null if this is a root region
+        /// </returns>
+        /// <exception cref="RegionDestroyedException">
+        /// if the region has been destroyed
+        /// </exception>
+        property Region^ ParentRegion
+        {
+          Region^ get( );
+        }
+
+        /// <summary>
+        /// Returns the attributes for this region, which can be used to create a new
+        /// region with <see cref="Cache.CreateRegion" />.
+        /// </summary>
+        /// <returns>
+        /// region's attributes
+        /// </returns>
+        property RegionAttributes^ Attributes
+        {
+          RegionAttributes^ get( );
+        }
+
+        /// <summary>
+        /// Return a mutator object for changing a subset of the
+        /// region attributes.
+        /// </summary>
+        /// <returns>
+        /// attribute mutator
+        /// </returns>
+        /// <exception cref="RegionDestroyedException">
+        /// if the region has been destroyed
+        /// </exception>
+        AttributesMutator^ GetAttributesMutator( );
+
+        /// <summary>
+        /// Returns the statistics for this region.
+        /// </summary>
+        /// <returns>the <c>CacheStatistics</c> for this region</returns>
+        /// <exception cref="StatisticsDisabledException">
+        /// if statistics have been disabled for this region
+        /// </exception>
+        property CacheStatistics^ Statistics
+        {
+          CacheStatistics^ get( );
+        }
+
+        /// <summary>
+        /// Invalidates this region.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// The invalidation will cascade to all the subregions and cached
+        /// entries. The region
+        /// and the entries in it will still exist.
+        /// </para>
+        /// <para>
+        /// This operation is not distributed for native clients
+        /// </para>
+        /// <para>
+        /// To remove all the
+        /// entries and the region, use <see cref="DestroyRegion" />.
+        /// </para><para>
+        /// Does not update any <c>CacheStatistics</c>.
+        /// </para>
+        /// </remarks>
+        /// <param name="callback">
+        /// user-defined parameter to pass to callback events triggered by this method
+        /// </param>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if this region has been destroyed
+        /// </exception>
+        /// <seealso cref="LocalInvalidateRegion" />
+        /// <seealso cref="DestroyRegion" />
+        /// <seealso cref="ICacheListener.AfterRegionInvalidate" />
+        void InvalidateRegion( IGFSerializable^ callback );
+
+        /// <summary>
+        /// Invalidates this region.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// The invalidation will cascade to all the subregions and cached
+        /// entries. The region
+        /// and the entries in it will still exist.
+        /// </para>
+        /// <para>
+        /// This operation is not distributed for native clients
+        /// </para>
+        /// <para>
+        /// To remove all the
+        /// entries and the region, use <see cref="DestroyRegion" />.
+        /// </para><para>
+        /// Does not update any <c>CacheStatistics</c>.
+        /// </para>
+        /// </remarks>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception; if this occurs some
+        /// subregions may have already been successfully invalidated
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if this region has been destroyed
+        /// </exception>
+        /// <seealso cref="LocalInvalidateRegion" />
+        /// <seealso cref="DestroyRegion" />
+        /// <seealso cref="ICacheListener.AfterRegionInvalidate" />
+        inline void InvalidateRegion( )
+        {
+          InvalidateRegion( nullptr );
+        }
+
+        /// <summary>
+        /// Invalidates this region without distributing to other caches.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// The invalidation will cascade to all the local subregions and cached
+        /// entries. The region
+        /// and the entries in it will still exist.
+        /// </para><para>
+        /// To remove all the
+        /// entries and the region, use <see cref="LocalDestroyRegion" />.
+        /// </para><para>
+        /// Does not update any <c>CacheStatistics</c>.
+        /// </para>
+        /// </remarks>
+        /// <param name="callback">
+        /// a user-defined parameter to pass to callback events triggered by this method
+        /// </param>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception; if this occurs some
+        /// subregions may have already been successfully invalidated
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if the region is no longer valid
+        /// </exception>
+        /// <seealso cref="InvalidateRegion" />
+        /// <seealso cref="LocalDestroyRegion" />
+        /// <seealso cref="ICacheListener.AfterRegionInvalidate" />
+        void LocalInvalidateRegion( IGFSerializable^ callback );
+
+        /// <summary>
+        /// Invalidates this region without distributing to other caches.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// The invalidation will cascade to all the local subregions and cached
+        /// entries. The region
+        /// and the entries in it will still exist.
+        /// </para><para>
+        /// To remove all the
+        /// entries and the region, use <see cref="LocalDestroyRegion" />.
+        /// </para><para>
+        /// Does not update any <c>CacheStatistics</c>.
+        /// </para>
+        /// </remarks>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception; if this occurs some
+        /// subregions may have already been successfully invalidated
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if the region is no longer valid
+        /// </exception>
+        /// <seealso cref="InvalidateRegion" />
+        /// <seealso cref="LocalDestroyRegion" />
+        /// <seealso cref="ICacheListener.AfterRegionInvalidate" />
+        inline void LocalInvalidateRegion( )
+        {
+          LocalInvalidateRegion( nullptr );
+        }
+
+        /// <summary>
+        /// Destroys the whole distributed region and provides a user-defined parameter
+        /// object to any <c>ICacheWriter</c> invoked in the process.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// Destroy cascades to all entries and subregions. After the destroy,
+        /// this region object can not be used any more. Any attempt to use
+        /// this region object will get a <c>RegionDestroyedException</c>
+        /// The region destroy not only destroys the local region but also destroys the
+        /// server region.
+        /// </para><para>
+        /// Does not update any <c>CacheStatistics</c>.
+        /// </para>
+        /// </remarks>
+        /// <param name="callback">
+        /// a user-defined parameter to pass to callback events triggered by this call
+        /// </param>
+        /// <exception cref="CacheWriterException">
+        /// if a CacheWriter aborts the operation; if this occurs some
+        /// subregions may have already been successfully destroyed.
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception; if this occurs some
+        /// subregions may have already been successfully invalidated
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <seealso cref="InvalidateRegion" />
+        void DestroyRegion( IGFSerializable^ callback );
+
+        /// <summary>
+        /// Destroys the whole distributed region and provides a user-defined parameter
+        /// object to any <c>ICacheWriter</c> invoked in the process.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// Destroy cascades to all entries and subregions. After the destroy,
+        /// this region object can not be used any more. Any attempt to use
+        /// this region object will get a <c>RegionDestroyedException</c>
+        /// The region destroy not only destroys the local region but also destroys the
+        /// server region.
+        /// </para><para>
+        /// Does not update any <c>CacheStatistics</c>.
+        /// </para>
+        /// </remarks>
+        /// <exception cref="CacheWriterException">
+        /// if a CacheWriter aborts the operation; if this occurs some
+        /// subregions may have already been successfully destroyed.
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception; if this occurs some
+        /// subregions may have already been successfully invalidated
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <seealso cref="InvalidateRegion" />
+        inline void DestroyRegion( )
+        {
+          DestroyRegion( nullptr );
+        }
+
+        /// <summary>
+        /// Destroys the whole local region and provides a user-defined parameter
+        /// object to any <c>ICacheWriter</c> invoked in the process.
+        /// The region destroy is not distributed to other caches.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// Destroy cascades to all entries and subregions. After the destroy,
+        /// any attempt to use
+        /// this region object will get a <c>RegionDestroyedException</c>.
+        /// </para><para>
+        /// Does not update any <c>CacheStatistics</c>.
+        /// </para>
+        /// </remarks>
+        /// <param name="callback">
+        /// a user-defined parameter to pass to callback events triggered by this call
+        /// </param>
+        /// <exception cref="CacheWriterException">
+        /// if a CacheWriter aborts the operation; if this occurs some
+        /// subregions may have already been successfully destroyed.
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception; if this occurs some
+        /// subregions may have already been successfully invalidated
+        /// </exception>
+        /// <seealso cref="DestroyRegion" />
+        /// <seealso cref="LocalInvalidateRegion" />
+        void LocalDestroyRegion( IGFSerializable^ callback );
+
+        /// <summary>
+        /// Destroys the whole local region and provides a user-defined parameter
+        /// object to any <c>ICacheWriter</c> invoked in the process.
+        /// The region destroy is not distributed to other caches.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// Destroy cascades to all entries and subregions. After the destroy,
+        /// any attempt to use
+        /// this region object will get a <c>RegionDestroyedException</c>.
+        /// </para><para>
+        /// Does not update any <c>CacheStatistics</c>.
+        /// </para>
+        /// </remarks>
+        /// <exception cref="CacheWriterException">
+        /// if a CacheWriter aborts the operation; if this occurs some
+        /// subregions may have already been successfully destroyed.
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception; if this occurs some
+        /// subregions may have already been successfully invalidated
+        /// </exception>
+        /// <seealso cref="DestroyRegion" />
+        /// <seealso cref="LocalInvalidateRegion" />
+        inline void LocalDestroyRegion( ) { LocalDestroyRegion( nullptr ); }
+
+        /// <summary>
+        /// Returns the subregion identified by the path, null if no such subregion.
+        /// </summary>
+        /// <param name="path">path</param>
+        /// <returns>subregion, or null if none</returns>
+        /// <seealso cref="FullPath" />
+        /// <seealso cref="SubRegions" />
+        /// <seealso cref="ParentRegion" />
+        Region^ GetSubRegion( String^ path );
+
+        /// <summary>
+        /// Creates a subregion with the given name and attributes.
+        /// </summary>
+        /// <param name="subRegionName">new subregion name</param>
+        /// <param name="attributes">subregion attributes</param>
+        /// <returns>new subregion</returns>
+        /// <seealso cref="CreateServerSubRegion" />
+        Region^ CreateSubRegion( String^ subRegionName, RegionAttributes^ attributes );
+
+        /// <summary>
+        /// Returns the subregions of this region.
+        /// </summary>
+        /// <param name="recursive">if true, also return all nested subregions</param>
+        /// <returns>array of regions</returns>
+        /// <exception cref="RegionDestroyedException">
+        /// this region has already been destroyed
+        /// </exception>
+        array<Region^>^ SubRegions( bool recursive );
+
+        /// <summary>
+        /// Return the meta-object RegionEntry for the given key.
+        /// </summary>
+        /// <param name="key">key to use</param>
+        /// <returns>region entry object</returns>
+        /// <exception cref="IllegalArgumentException">key is null</exception>
+        /// <exception cref="RegionDestroyedException">
+        /// region has been destroyed
+        /// </exception>
+        RegionEntry^ GetEntry( GemStone::GemFire::Cache::ICacheableKey^ key );
+
+        /// <summary>
+        /// Return the meta-object RegionEntry for the given key.
+        /// </summary>
+        /// <param name="key">key to use</param>
+        /// <returns>region entry object</returns>
+        /// <exception cref="IllegalArgumentException">key is null</exception>
+        /// <exception cref="RegionDestroyedException">
+        /// region has been destroyed
+        /// </exception>
+        RegionEntry^ GetEntry( CacheableKey^ key );
+
+        /// <summary>
+        /// Returns the value for the given key, passing the callback argument
+        /// to any cache loaders or that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If the value is not present locally then it is requested from the java server.
+        /// If even that is unsuccessful then a local CacheLoader will be invoked if there is one.
+        /// </para>
+        /// <para>
+        /// The value returned by get is not copied, so multi-threaded applications
+        /// should not modify the value directly, but should use the update methods.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" />
+        /// <see cref="CacheStatistics.HitCount" />, <see cref="CacheStatistics.MissCount" />,
+        /// and <see cref="CacheStatistics.LastModifiedTime" /> (if a new value is loaded)
+        /// for this region and the entry.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// key whose associated value is to be returned -- the key
+        /// object must implement the Equals and GetHashCode methods.
+        /// </param>
+        /// <param name="callback">
+        /// An argument passed into the CacheLoader if loader is used.
+        /// Has to be Serializable (i.e. implement <c>IGFSerializable</c>);
+        /// can be null.
+        /// </param>
+        /// <returns>
+        /// value, or null if the value is not found and can't be loaded
+        /// </returns>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheLoaderException">
+        /// if CacheLoader throws an exception
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="MessageException">
+        /// If the message received from server could not be handled. This will
+        /// be the case when an unregistered typeId is received in the reply or
+        /// reply is not well formed. More information can be found in the log.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if this region has been destroyed
+        /// </exception>
+        /// <seealso cref="Put" />
+        IGFSerializable^ Get( GemStone::GemFire::Cache::ICacheableKey^ key,
+          IGFSerializable^ callback );
+
+        /// <summary>
+        /// Returns the value for the given key, passing the callback argument
+        /// to any cache loaders or that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If the value is not present locally then it is requested from the java server.
+        /// If even that is unsuccessful then a local CacheLoader will be invoked if there is one.
+        /// </para>
+        /// <para>
+        /// The value returned by get is not copied, so multi-threaded applications
+        /// should not modify the value directly, but should use the update methods.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" />
+        /// <see cref="CacheStatistics.HitCount" />, <see cref="CacheStatistics.MissCount" />,
+        /// and <see cref="CacheStatistics.LastModifiedTime" /> (if a new value is loaded)
+        /// for this region and the entry.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// key whose associated value is to be returned -- the key
+        /// object must implement the Equals and GetHashCode methods.
+        /// </param>
+        /// <param name="callback">
+        /// An argument passed into the CacheLoader if loader is used.
+        /// Has to be Serializable (i.e. implement <c>IGFSerializable</c>);
+        /// can be null.
+        /// </param>
+        /// <returns>
+        /// value, or null if the value is not found and can't be loaded
+        /// </returns>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheLoaderException">
+        /// if CacheLoader throws an exception
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="MessageException">
+        /// If the message received from server could not be handled. This will
+        /// be the case when an unregistered typeId is received in the reply or
+        /// reply is not well formed. More information can be found in the log.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if this region has been destroyed
+        /// </exception>
+        /// <seealso cref="Put" />
+        IGFSerializable^ Get( CacheableKey^ key,
+          IGFSerializable^ callback );
+
+        /// <summary>
+        /// Returns the value for the given key, passing the callback argument
+        /// to any cache loaders or that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If the value is not present locally then it is requested from the java server.
+        /// If even that is unsuccessful then a local CacheLoader will be invoked if there is one.
+        /// </para>
+        /// <para>
+        /// The value returned by get is not copied, so multi-threaded applications
+        /// should not modify the value directly, but should use the update methods.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" />
+        /// <see cref="CacheStatistics.HitCount" />, <see cref="CacheStatistics.MissCount" />,
+        /// and <see cref="CacheStatistics.LastModifiedTime" /> (if a new value is loaded)
+        /// for this region and the entry.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// key whose associated value is to be returned -- the key
+        /// object must implement the Equals and GetHashCode methods.
+        /// </param>
+        /// <returns>
+        /// value, or null if the value is not found and can't be loaded
+        /// </returns>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheLoaderException">
+        /// if CacheLoader throws an exception
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="MessageException">
+        /// If the message received from server could not be handled. This will
+        /// be the case when an unregistered typeId is received in the reply or
+        /// reply is not well formed. More information can be found in the log.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if this region has been destroyed
+        /// </exception>
+        /// <seealso cref="Put" />
+        inline IGFSerializable^ Get( GemStone::GemFire::Cache::ICacheableKey^ key )
+        {
+          return Get( key, nullptr );
+        }
+        /// <summary>
+	/// check to see if the key is present on the server
+        /// </summary>
+
+        Boolean  ContainsKeyOnServer( CacheableKey^ key );
+
+
+        /// <summary>
+        /// Returns the value for the given key, passing the callback argument
+        /// to any cache loaders or that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If the value is not present locally then it is requested from the java server.
+        /// If even that is unsuccessful then a local CacheLoader will be invoked if there is one.
+        /// </para>
+        /// <para>
+        /// The value returned by get is not copied, so multi-threaded applications
+        /// should not modify the value directly, but should use the update methods.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" />
+        /// <see cref="CacheStatistics.HitCount" />, <see cref="CacheStatistics.MissCount" />,
+        /// and <see cref="CacheStatistics.LastModifiedTime" /> (if a new value is loaded)
+        /// for this region and the entry.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// key whose associated value is to be returned -- the key
+        /// object must implement the Equals and GetHashCode methods.
+        /// </param>
+        /// <returns>
+        /// value, or null if the value is not found and can't be loaded
+        /// </returns>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheLoaderException">
+        /// if CacheLoader throws an exception
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="MessageException">
+        /// If the message received from server could not be handled. This will
+        /// be the case when an unregistered typeId is received in the reply or
+        /// reply is not well formed. More information can be found in the log.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if this region has been destroyed
+        /// </exception>
+        /// <seealso cref="Put" />
+        inline IGFSerializable^ Get( CacheableKey^ key )
+        {
+          return Get( key, nullptr );
+        }
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified key,
+        /// passing the callback argument to any cache writers and cache listeners
+        /// that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// The new put value is propogated to the java server to which it is connected with.
+        /// Put is intended for very simple caching situations. In general
+        /// it is better to create a <c>ICacheLoader</c> object and allow the
+        /// cache to manage the creation and loading of objects.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para><para>
+        /// If remote server put fails throwing back a <c>CacheServerException</c>
+        /// or security exception, then local put is tried to rollback. However,
+        /// if the entry has overflowed/evicted/expired then the rollback is
+        /// aborted since it may be due to a more recent notification or update
+        /// by another thread.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <param name="callback">
+        /// argument that is passed to the callback functions
+        /// </param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        void Put( GemStone::GemFire::Cache::ICacheableKey^ key, IGFSerializable^ value,
+          IGFSerializable^ callback );
+
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified key,
+        /// passing the callback argument to any cache writers and cache listeners
+        /// that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// The new put value is propogated to the java server to which it is connected with.
+        /// Put is intended for very simple caching situations. In general
+        /// it is better to create a <c>ICacheLoader</c> object and allow the
+        /// cache to manage the creation and loading of objects.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para><para>
+        /// If remote server put fails throwing back a <c>CacheServerException</c>
+        /// or security exception, then local put is tried to rollback. However,
+        /// if the entry has overflowed/evicted/expired then the rollback is
+        /// aborted since it may be due to a more recent notification or update
+        /// by another thread.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <param name="callback">
+        /// argument that is passed to the callback functions
+        /// </param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        void Put( CacheableKey^ key, IGFSerializable^ value,
+          IGFSerializable^ callback );
+
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified key,
+        /// passing the callback argument to any cache writers and cache listeners
+        /// that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// The new put value is propogated to the java server to which it is connected with.
+        /// Put is intended for very simple caching situations. In general
+        /// it is better to create a <c>ICacheLoader</c> object and allow the
+        /// cache to manage the creation and loading of objects.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para><para>
+        /// If remote server put fails throwing back a <c>CacheServerException</c>
+        /// or security exception, then local put is tried to rollback. However,
+        /// if the entry has overflowed/evicted/expired then the rollback is
+        /// aborted since it may be due to a more recent notification or update
+        /// by another thread.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <param name="callback">
+        /// argument that is passed to the callback functions
+        /// </param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        void Put( GemStone::GemFire::Cache::ICacheableKey^ key, GemStone::GemFire::Cache::Serializable^ value,
+          IGFSerializable^ callback );
+
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified key,
+        /// passing the callback argument to any cache writers and cache listeners
+        /// that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// The new put value is propogated to the java server to which it is connected with.
+        /// Put is intended for very simple caching situations. In general
+        /// it is better to create a <c>ICacheLoader</c> object and allow the
+        /// cache to manage the creation and loading of objects.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para><para>
+        /// If remote server put fails throwing back a <c>CacheServerException</c>
+        /// or security exception, then local put is tried to rollback. However,
+        /// if the entry has overflowed/evicted/expired then the rollback is
+        /// aborted since it may be due to a more recent notification or update
+        /// by another thread.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <param name="callback">
+        /// argument that is passed to the callback functions
+        /// </param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        void Put( CacheableKey^ key, GemStone::GemFire::Cache::Serializable^ value,
+          IGFSerializable^ callback );
+
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified key.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// The new put value is propogated to the java server to which it is connected with.
+        /// Put is intended for very simple caching situations. In general
+        /// it is better to create a <c>ICacheLoader</c> object and allow the
+        /// cache to manage the creation and loading of objects.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para><para>
+        /// If remote server put fails throwing back a <c>CacheServerException</c>
+        /// or security exception, then local put is tried to rollback. However,
+        /// if the entry has overflowed/evicted/expired then the rollback is
+        /// aborted since it may be due to a more recent notification or update
+        /// by another thread.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        inline void Put( GemStone::GemFire::Cache::ICacheableKey^ key, IGFSerializable^ value )
+        {
+          Put( key, value, nullptr );
+        }
+
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified key.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// The new put value is propogated to the java server to which it is connected with.
+        /// Put is intended for very simple caching situations. In general
+        /// it is better to create a <c>ICacheLoader</c> object and allow the
+        /// cache to manage the creation and loading of objects.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para><para>
+        /// If remote server put fails throwing back a <c>CacheServerException</c>
+        /// or security exception, then local put is tried to rollback. However,
+        /// if the entry has overflowed/evicted/expired then the rollback is
+        /// aborted since it may be due to a more recent notification or update
+        /// by another thread.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        inline void Put( CacheableKey^ key, IGFSerializable^ value )
+        {
+          Put( key, value, nullptr );
+        }
+
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified key.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// The new put value is propogated to the java server to which it is connected with.
+        /// Put is intended for very simple caching situations. In general
+        /// it is better to create a <c>ICacheLoader</c> object and allow the
+        /// cache to manage the creation and loading of objects.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para><para>
+        /// If remote server put fails throwing back a <c>CacheServerException</c>
+        /// or security exception, then local put is tried to rollback. However,
+        /// if the entry has overflowed/evicted/expired then the rollback is
+        /// aborted since it may be due to a more recent notification or update
+        /// by another thread.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        inline void Put( GemStone::GemFire::Cache::ICacheableKey^ key, GemStone::GemFire::Cache::Serializable^ value )
+        {
+          Put( key, value, nullptr );
+        }
+
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified key.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// The new put value is propogated to the java server to which it is connected with.
+        /// Put is intended for very simple caching situations. In general
+        /// it is better to create a <c>ICacheLoader</c> object and allow the
+        /// cache to manage the creation and loading of objects.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para><para>
+        /// If remote server put fails throwing back a <c>CacheServerException</c>
+        /// or security exception, then local put is tried to rollback. However,
+        /// if the entry has overflowed/evicted/expired then the rollback is
+        /// aborted since it may be due to a more recent notification or update
+        /// by another thread.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        inline void Put( CacheableKey^ key, GemStone::GemFire::Cache::Serializable^ value )
+        {
+          Put( key, value, nullptr );
+        }
+
+        /// <summary>
+        /// Puts a map of entries in this region.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with any key in the map in
+        /// this region, the entry's previous value is overwritten.
+        /// The new values are propogated to the java server to which it is connected with.
+        /// PutAll is intended for speed up large amount of put operation into
+        /// the same region.
+        /// </para>
+        /// </remarks>
+        /// <param name="map">
+        /// A hashmap contains entries, i.e. (key, value) pairs. Value should
+        /// not be null in any of the enties.
+        /// </param>
+        /// <param name="timeout">The time (in seconds) to wait for the PutAll
+        /// response. It should be less than or equal to 2^31/1000 i.e. 2147483.
+        /// Optional.
+        /// </param>
+        /// <exception cref="IllegalArgumentException">
+        /// If timeout is more than 2^31/1000 i.e. 2147483.
+        /// </exception>
+        /// <exception cref="NullPointerException">
+        /// if any value in the map is null
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Put" />
+        void PutAll(CacheableHashMap^ map, uint32_t timeout);
+
+        /// <summary>
+        /// Puts a map of entries in this region.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with any key in the map in
+        /// this region, the entry's previous value is overwritten.
+        /// The new values are propogated to the java server to which it is connected with.
+        /// PutAll is intended for speed up large amount of put operation into
+        /// the same region.
+        /// </para>
+        /// </remarks>
+        /// <param name="map">
+        /// A hashmap contains entries, i.e. (key, value) pairs. Value should
+        /// not be null in any of the enties.
+        /// </param>
+        /// <exception cref="NullPointerException">
+        /// if any value in the map is null
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to the GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Put" />
+        void PutAll(CacheableHashMap^ map);
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified
+        /// key in the local cache only, passing the callback argument to any
+        /// cache writers and cache listeners that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <param name="callbackArg">
+        /// argument that is passed to the callback functions
+        /// </param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        void LocalPut(GemStone::GemFire::Cache::ICacheableKey^ key, IGFSerializable^ value,
+          IGFSerializable^ callbackArg);
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified
+        /// key in the local cache only, passing the callback argument to any
+        /// cache writers and cache listeners that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <param name="callbackArg">
+        /// argument that is passed to the callback functions
+        /// </param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        void LocalPut(CacheableKey^ key, IGFSerializable^ value,
+          IGFSerializable^ callbackArg);
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified
+        /// key in the local cache only, passing the callback argument to any
+        /// cache writers and cache listeners that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <param name="callbackArg">
+        /// argument that is passed to the callback functions
+        /// </param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        void LocalPut(GemStone::GemFire::Cache::ICacheableKey^ key, GemStone::GemFire::Cache::Serializable^ value,
+          IGFSerializable^ callbackArg);
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified
+        /// key in the local cache only, passing the callback argument to any
+        /// cache writers and cache listeners that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <param name="callbackArg">
+        /// argument that is passed to the callback functions
+        /// </param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        void LocalPut(CacheableKey^ key, GemStone::GemFire::Cache::Serializable^ value,
+          IGFSerializable^ callbackArg);
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified key
+        /// in the local cache only.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        inline void LocalPut(GemStone::GemFire::Cache::ICacheableKey^ key, IGFSerializable^ value)
+        {
+          LocalPut(key, value, nullptr);
+        }
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified key
+        /// in the local cache only.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        inline void LocalPut(CacheableKey^ key, IGFSerializable^ value)
+        {
+          LocalPut(key, value, nullptr);
+        }
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified key
+        /// in the local cache only.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        inline void LocalPut(GemStone::GemFire::Cache::ICacheableKey^ key, GemStone::GemFire::Cache::Serializable^ value)
+        {
+          LocalPut(key, value, nullptr);
+        }
+
+        /// <summary>
+        /// Puts a new value into an entry in this region with the specified key
+        /// in the local cache only.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// If there is already an entry associated with the specified key in
+        /// this region, the entry's previous value is overwritten.
+        /// </para><para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region and the entry.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// a key object associated with the value to be put into this region.
+        /// </param>
+        /// <param name="value">the value to be put into this region</param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if  there is not enough memory for the value
+        /// </exception>
+        /// <seealso cref="Get" />
+        /// <seealso cref="Create" />
+        inline void LocalPut(CacheableKey^ key, GemStone::GemFire::Cache::Serializable^ value)
+        {
+          LocalPut(key, value, nullptr);
+        }
+
+        /// <summary>
+        /// Creates a new entry in this region with the specified key and value,
+        /// passing the callback argument to any cache writers and cache listeners
+        /// that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region
+        /// and the entry.
+        /// </para>
+        /// <para>
+        /// The new entry is propogated to the java server to which it is connected with.
+        /// </para><para>
+        /// If remote server put fails throwing back a <c>CacheServerException</c>
+        /// or security exception, then local put is tried to rollback. However,
+        /// if the entry has overflowed/evicted/expired then the rollback is
+        /// aborted since it may be due to a more recent notification or update
+        /// by another thread.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// The key for which to create the entry in this region. The object is
+        /// created before the call, and the caller should not deallocate the object.
+        /// </param>
+        /// <param name="value">
+        /// The value for the new entry, which may be null to indicate that the new
+        /// entry starts as if it had been locally invalidated.
+        /// </param>
+        /// <param name="callbackArg">
+        /// a custome parameter to pass to the cache writer or cache listener
+        /// </param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to a GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if there is not enough memory for the new entry
+        /// </exception>
+        /// <exception cref="EntryExistsException">
+        /// if an entry with this key already exists
+        /// </exception>
+        /// <seealso cref="Put" />
+        /// <seealso cref="Get" />
+        void Create( GemStone::GemFire::Cache::ICacheableKey^ key, IGFSerializable^ value,
+          IGFSerializable^ callbackArg );
+
+        /// <summary>
+        /// Creates a new entry in this region with the specified key and value,
+        /// passing the callback argument to any cache writers and cache listeners
+        /// that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region
+        /// and the entry.
+        /// </para>
+        /// <para>
+        /// The new entry is propogated to the java server to which it is connected with.
+        /// </para><para>
+        /// If remote server put fails throwing back a <c>CacheServerException</c>
+        /// or security exception, then local put is tried to rollback. However,
+        /// if the entry has overflowed/evicted/expired then the rollback is
+        /// aborted since it may be due to a more recent notification or update
+        /// by another thread.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// The key for which to create the entry in this region. The object is
+        /// created before the call, and the caller should not deallocate the object.
+        /// </param>
+        /// <param name="value">
+        /// The value for the new entry, which may be null to indicate that the new
+        /// entry starts as if it had been locally invalidated.
+        /// </param>
+        /// <param name="callbackArg">
+        /// a custome parameter to pass to the cache writer or cache listener
+        /// </param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to a GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if there is not enough memory for the new entry
+        /// </exception>
+        /// <exception cref="EntryExistsException">
+        /// if an entry with this key already exists
+        /// </exception>
+        /// <seealso cref="Put" />
+        /// <seealso cref="Get" />
+        void Create( CacheableKey^ key, IGFSerializable^ value,
+          IGFSerializable^ callbackArg );
+
+        /// <summary>
+        /// Creates a new entry in this region with the specified key and value,
+        /// passing the callback argument to any cache writers and cache listeners
+        /// that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region
+        /// and the entry.
+        /// </para>
+        /// <para>
+        /// The new entry is propogated to the java server to which it is connected with.
+        /// </para><para>
+        /// If remote server put fails throwing back a <c>CacheServerException</c>
+        /// or security exception, then local put is tried to rollback. However,
+        /// if the entry has overflowed/evicted/expired then the rollback is
+        /// aborted since it may be due to a more recent notification or update
+        /// by another thread.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// The key for which to create the entry in this region. The object is
+        /// created before the call, and the caller should not deallocate the object.
+        /// </param>
+        /// <param name="value">
+        /// The value for the new entry, which may be null to indicate that the new
+        /// entry starts as if it had been locally invalidated.
+        /// </param>
+        /// <param name="callbackArg">
+        /// a custome parameter to pass to the cache writer or cache listener
+        /// </param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to a GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if there is not enough memory for the new entry
+        /// </exception>
+        /// <exception cref="EntryExistsException">
+        /// if an entry with this key already exists
+        /// </exception>
+        /// <seealso cref="Put" />
+        /// <seealso cref="Get" />
+        void Create( GemStone::GemFire::Cache::ICacheableKey^ key, GemStone::GemFire::Cache::Serializable^ value,
+          IGFSerializable^ callbackArg );
+
+        /// <summary>
+        /// Creates a new entry in this region with the specified key and value,
+        /// passing the callback argument to any cache writers and cache listeners
+        /// that are invoked in the operation.
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// Updates the <see cref="CacheStatistics.LastAccessedTime" /> and
+        /// <see cref="CacheStatistics.LastModifiedTime" /> for this region
+        /// and the entry.
+        /// </para>
+        /// <para>
+        /// The new entry is propogated to the java server to which it is connected with.
+        /// </para><para>
+        /// If remote server put fails throwing back a <c>CacheServerException</c>
+        /// or security exception, then local put is tried to rollback. However,
+        /// if the entry has overflowed/evicted/expired then the rollback is
+        /// aborted since it may be due to a more recent notification or update
+        /// by another thread.
+        /// </para>
+        /// </remarks>
+        /// <param name="key">
+        /// The key for which to create the entry in this region. The object is
+        /// created before the call, and the caller should not deallocate the object.
+        /// </param>
+        /// <param name="value">
+        /// The value for the new entry, which may be null to indicate that the new
+        /// entry starts as if it had been locally invalidated.
+        /// </param>
+        /// <param name="callbackArg">
+        /// a custome parameter to pass to the cache writer or cache listener
+        /// </param>
+        /// <exception cref="IllegalArgumentException">
+        /// if key is null
+        /// </exception>
+        /// <exception cref="CacheWriterException">
+        /// if CacheWriter aborts the operation
+        /// </exception>
+        /// <exception cref="CacheListenerException">
+        /// if CacheListener throws an exception
+        /// </exception>
+        /// <exception cref="CacheServerException">
+        /// If an exception is received from the Java cache server.
+        /// Only for Native Client regions.
+        /// </exception>
+        /// <exception cref="NotConnectedException">
+        /// if not connected to a GemFire system because the client cannot
+        /// establish usable connections to any of the servers given to it.
+        /// For pools configured with locators, if no locators are available, innerException
+        /// of NotConnectedException is set to NoAvailableLocatorsException.
+        /// </exception>
+        /// <exception cref="RegionDestroyedException">
+        /// if region has been destroyed
+        /// </exception>
+        /// <exception cref="TimeoutException">
+        /// if the operation timed out
+        /// </exception>
+        /// <exception cref="OutOfMemoryException">
+        /// if there is not enough memory for the new entry
+        /// </exceptio

<TRUNCATED>


Mime
View raw message