geode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r..@apache.org
Subject [08/51] [partial] incubator-geode git commit: Add source for geode c++ and .net clients
Date Thu, 19 May 2016 15:14:15 GMT
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/src/clicache/StatisticsFactoryM.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/src/clicache/StatisticsFactoryM.hpp b/geode-client-native/src/clicache/StatisticsFactoryM.hpp
new file mode 100644
index 0000000..e7da8f2
--- /dev/null
+++ b/geode-client-native/src/clicache/StatisticsFactoryM.hpp
@@ -0,0 +1,254 @@
+/*=========================================================================
+ * 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 "impl/NativeWrapper.hpp"
+#include "cppcache/statistics/StatisticsFactory.hpp"
+#include "cppcache/statistics/StatisticsType.hpp"
+#include "cppcache/statistics/StatisticDescriptor.hpp"
+#include "cppcache/statistics/Statistics.hpp"
+
+namespace GemStone
+{
+  namespace GemFire
+  {
+    namespace Cache
+    {
+      ref class StatisticDescriptor;
+      ref class StatisticsType;
+      ref class Statistics; 
+
+      /// <summary>
+      /// Instances of this interface provide methods that create instances
+      /// of <see cref="StatisticDescriptor" /> and <see cref="StatisticsType" />.
+      /// Every <see cref="StatisticsFactory" /> is also a type factory.
+      /// </summary>
+      /// <para>
+      /// A <c>StatisticsFactory</c> can create a <see cref="StatisticDescriptor" />
+      /// statistic of three numeric types:
+      /// <c>int</c>, <c>long</c>, and <c>double</c>.  A
+      /// statistic (<c>StatisticDescriptor</c>) can either be a
+      /// <I>gauge</I> meaning that its value can increase and decrease or a
+      /// <I>counter</I> meaning that its value is strictly increasing.
+      /// Marking a statistic as a counter allows the GemFire Manager Console
+      /// to properly display a statistics whose value "wraps around" (that
+      /// is, exceeds its maximum value).
+      /// </para>
+      [Obsolete("Use classes and APIs from the GemStone.GemFire.Cache.Generic namespace")]
+      public ref class StatisticsFactory sealed
+        : public Internal::UMWrap<gemfire_statistics::StatisticsFactory>
+      {
+        protected:
+          StatisticsFactory(){}
+          StatisticsFactory(StatisticsFactory^){}
+      public:
+          /// <summary>
+          /// Return a pre-existing statistics factory. Typically configured through
+          /// creation of a distributed system.
+          /// </summary>
+          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 );
+
+          /// <summary>
+          /// Creates and returns an int counter  <see cref="StatisticDescriptor" />
+          /// with the given <c>name</c>, <c>description</c>,
+          /// <c>units</c>.
+          /// </summary>
+          virtual StatisticDescriptor^ CreateIntCounter( String^ name, String^ description, String^ units );
+
+          /// <summary>
+          /// Creates and returns an long 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^ CreateLongCounter( String^ name, String^ description, String^ units, int8_t largerBetter );
+
+          /// <summary>
+          /// Creates and returns an long counter  <see cref="StatisticDescriptor" />
+          /// with the given <c>name</c>, <c>description</c>,
+          /// <c>units</c>.
+          /// </summary>
+          virtual StatisticDescriptor^ CreateLongCounter( String^ name, String^ description, String^ units );
+
+          /// <summary>
+          /// Creates and returns an double 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^ CreateDoubleCounter( String^ name, String^ description, String^ units, int8_t largerBetter );
+
+          /// <summary>
+          /// Creates and returns an double counter  <see cref="StatisticDescriptor" />
+          /// with the given <c>name</c>, <c>description</c>,
+          /// <c>units</c>.
+          /// </summary>
+          virtual StatisticDescriptor^ CreateDoubleCounter( String^ name, String^ description, String^ units );
+
+          /// <summary>
+          /// Creates and returns an int gauge  <see cref="StatisticDescriptor" />
+          /// 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 );
+
+          /// <summary>
+          /// Creates and returns an int gauge  <see cref="StatisticDescriptor" />
+          /// with the given <c>name</c>, <c>description</c>,
+          /// <c>units</c>.
+          /// </summary>
+          virtual StatisticDescriptor^ CreateIntGauge( String^ name, String^ description, String^ units );
+
+          /// <summary>
+          /// Creates and returns an long gauge <see cref="StatisticDescriptor" />
+          /// 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 );
+
+          /// <summary>
+          /// Creates and returns an long gauge <see cref="StatisticDescriptor" />
+          /// with the given <c>name</c>, <c>description</c>,
+          /// <c>units</c>.
+          /// </summary>
+          virtual StatisticDescriptor^ CreateLongGauge( String^ name, String^ description, String^ units );
+
+          /// <summary>
+          /// Creates and returns an double gauge <see cref="StatisticDescriptor" />
+          /// 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 );
+
+          /// <summary>
+          /// Creates and returns an double gauge <see cref="StatisticDescriptor" />
+          /// with the given <c>name</c>, <c>description</c>,
+          /// <c>units</c>.
+          /// </summary>
+          virtual StatisticDescriptor^ CreateDoubleGauge( String^ name, String^ description, String^ units );
+
+          /// <summary>
+          /// Creates and returns a <see cref="StatisticsType" /> 
+          /// with the given <c>name</c>, <c>description</c>,and <see cref="StatisticDescriptor" />
+          /// </summary>
+          /// <exception cref="IllegalArgumentException">
+          /// if a type with the given <c>name</c> already exists.
+          /// </exception>
+          virtual StatisticsType^ CreateType( String^ name, String^ description,
+                                   array<StatisticDescriptor^>^ stats, int32 statsLength);
+
+          /// <summary>
+          /// Finds and returns an already created <see cref="StatisticsType" /> 
+          /// with the given <c>name</c>. Returns <c>null</c> if the type does not exist.
+          /// </summary>
+          virtual StatisticsType^ FindType( String^ name );
+
+          /// <summary>
+          /// Creates and returns a <see cref="Statistics" /> instance of the given <see cref="StatisticsType" /> type, <c>textId</c>, and with default ids.
+          /// </summary>
+          /// <para>
+          /// The created instance may not be <see cref="Statistics#isAtomic" /> atomic.
+          /// </para>
+          virtual Statistics^ CreateStatistics(StatisticsType^ type);
+
+          /// <summary>
+          /// Creates and returns a <see cref="Statistics" /> instance of the given <see cref="StatisticsType" /> type, <c>textId</c>, and with a default numeric id.
+          /// </summary>
+          /// <para>
+          /// The created instance may not be <see cref="Statistics#isAtomic" /> atomic.
+          /// </para>
+          virtual Statistics^ CreateStatistics(StatisticsType^ type, String^ textId);
+
+          /// <summary>
+          /// Creates and returns a <see cref="Statistics" /> instance of the given <see cref="StatisticsType" /> type, <c>textId</c>, and <c>numericId</c>.
+          /// </summary>
+          /// <para>
+          /// The created instance may not be <see cref="Statistics#isAtomic" /> atomic.
+          /// </para>
+          virtual Statistics^ CreateStatistics(StatisticsType^ type, String^ textId, int64_t numericId);
+
+          /// <summary>
+          /// Creates and returns a <see cref="Statistics" /> instance of the given <see cref="StatisticsType" /> type, <c>textId</c>, and with default ids.
+          /// </summary>
+          /// <para>
+          /// The created instance will be <see cref="Statistics#isAtomic" /> atomic.
+          /// </para>
+          virtual Statistics^ CreateAtomicStatistics(StatisticsType^ type);
+
+          /// <summary>
+          /// Creates and returns a <see cref="Statistics" /> instance of the given <see cref="StatisticsType" /> type, <c>textId</c>, and with a default numeric id.
+          /// </summary>
+          /// <para>
+          /// The created instance will be <see cref="Statistics#isAtomic" /> atomic.
+          /// </para>
+          virtual Statistics^ CreateAtomicStatistics(StatisticsType^ type, String^ textId);
+
+          /// <summary>
+          /// Creates and returns a <see cref="Statistics" /> instance of the given <see cref="StatisticsType" /> type, <c>textId</c>, and <c>numericId</c>.
+          /// </summary>
+          /// <para>
+          /// The created instance will be <see cref="Statistics#isAtomic" /> atomic.
+          /// </para>
+          virtual Statistics^ CreateAtomicStatistics(StatisticsType^ type, String^ textId, int64 numericId);
+
+          /// <summary>
+          /// Return the first instance that matches the type, or NULL
+          /// </summary>
+          virtual Statistics^ FindFirstStatisticsByType( StatisticsType^ type );
+          
+          /// <summary>
+          /// Returns a name that can be used to identify the manager
+          /// </summary>
+          virtual property String^ Name
+          {
+            virtual String^ get( );
+          }
+
+          /// <summary>
+          /// Returns a numeric id that can be used to identify the manager
+          /// </summary>
+          virtual property int64_t ID
+          {
+            virtual int64_t get( );
+          }
+
+        internal:
+           /// <summary>
+           /// Internal factory function to wrap a native object pointer inside
+           /// this managed class, with null pointer check.
+           /// </summary>
+           /// <param name="nativeptr">native object pointer</param>
+           /// <returns>
+           /// the managed wrapper object, or null if the native pointer is null.
+           /// </returns>
+           inline static StatisticsFactory^ Create(
+           gemfire_statistics::StatisticsFactory* nativeptr )
+           {
+             return ( nativeptr != nullptr ?
+             gcnew StatisticsFactory( nativeptr ) : nullptr );
+           }
+
+         private:
+           /// <summary>
+           /// Private constructor to wrap a native object pointer
+           /// </summary>
+           /// <param name="nativeptr">The native object pointer</param>
+           inline StatisticsFactory( gemfire_statistics::StatisticsFactory* nativeptr )
+           : UMWrap( nativeptr, false ) { }
+      };
+    }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/src/clicache/StatisticsM.cpp
----------------------------------------------------------------------
diff --git a/geode-client-native/src/clicache/StatisticsM.cpp b/geode-client-native/src/clicache/StatisticsM.cpp
new file mode 100644
index 0000000..95b8df9
--- /dev/null
+++ b/geode-client-native/src/clicache/StatisticsM.cpp
@@ -0,0 +1,284 @@
+/*=========================================================================
+ * 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.
+ *=========================================================================
+ */
+
+#include "gf_includes.hpp"
+#include "StatisticsM.hpp"
+#include "StatisticDescriptorM.hpp"
+#include "ExceptionTypesM.hpp"
+#include "StatisticsTypeM.hpp"
+#include "impl/SafeConvert.hpp"
+
+namespace GemStone
+{
+  namespace GemFire
+  {
+    namespace Cache
+    {
+      void Statistics::Close()
+      {
+        _GF_MG_EXCEPTION_TRY
+
+          NativePtr->close();
+
+        _GF_MG_EXCEPTION_CATCH_ALL 
+      }
+
+      int32_t Statistics::NameToId(String^ name)
+      {
+        ManagedString mg_name( name );
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->nameToId(mg_name.CharPtr);
+        _GF_MG_EXCEPTION_CATCH_ALL 
+      }
+
+      StatisticDescriptor^ Statistics::NameToDescriptor(String^ name)
+      {
+        ManagedString mg_name( name );
+        _GF_MG_EXCEPTION_TRY
+          return GemStone::GemFire::Cache::StatisticDescriptor::Create(NativePtr->nameToDescriptor(mg_name.CharPtr));
+        _GF_MG_EXCEPTION_CATCH_ALL 
+      }
+
+      int64_t Statistics::UniqueId::get( )
+      {
+        return NativePtr->getUniqueId();
+      }
+
+      StatisticsType^ Statistics::Type::get( )
+      { 
+        return GemStone::GemFire::Cache::StatisticsType::Create(NativePtr->getType());
+      }
+
+      String^ Statistics::TextId::get()
+      {
+        return ManagedString::Get(NativePtr->getTextId());
+      }
+
+      int64_t Statistics::NumericId::get()
+      {
+        return NativePtr->getNumericId();
+      }
+      bool Statistics::IsAtomic::get()
+      {
+        return NativePtr->isAtomic();
+      }
+      bool Statistics::IsShared::get()
+      {
+        return NativePtr->isShared();
+      }
+      bool Statistics::IsClosed::get()
+      {
+        return NativePtr->isClosed();
+      }
+      
+      void Statistics::SetInt(int32_t id, int32_t value)
+      {
+        _GF_MG_EXCEPTION_TRY
+          NativePtr->setInt(id, value);
+        _GF_MG_EXCEPTION_CATCH_ALL 
+      } 
+
+      void Statistics::SetInt(String^ name, int32_t value)
+      {
+        ManagedString mg_name( name );
+        _GF_MG_EXCEPTION_TRY
+          NativePtr->setInt((char*)mg_name.CharPtr, value);
+        _GF_MG_EXCEPTION_CATCH_ALL 
+      }
+
+      void Statistics::SetInt(StatisticDescriptor^ descriptor, int32_t value)
+      {
+        _GF_MG_EXCEPTION_TRY
+          NativePtr->setInt(GetNativePtr<gemfire_statistics::StatisticDescriptor>(descriptor),value);
+        _GF_MG_EXCEPTION_CATCH_ALL 
+      }
+
+      void Statistics::SetLong(int32_t id, int64_t value)
+      {
+        _GF_MG_EXCEPTION_TRY
+          NativePtr->setLong(id, value);
+        _GF_MG_EXCEPTION_CATCH_ALL 
+      }
+
+      void Statistics::SetLong(StatisticDescriptor^ descriptor, int64_t value)
+      {
+        _GF_MG_EXCEPTION_TRY
+          NativePtr->setLong(GetNativePtr<gemfire_statistics::StatisticDescriptor>(descriptor),value);
+        _GF_MG_EXCEPTION_CATCH_ALL 
+      }
+
+      void Statistics::SetLong(String^ name, int64_t value)
+      {
+        ManagedString mg_name( name );
+        _GF_MG_EXCEPTION_TRY
+          NativePtr->setLong((char*)mg_name.CharPtr, value);
+        _GF_MG_EXCEPTION_CATCH_ALL 
+      }
+
+      void Statistics::SetDouble(int32_t id, double value)
+      {
+        _GF_MG_EXCEPTION_TRY
+          NativePtr->setDouble(id, value);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      void Statistics::SetDouble(String^ name, double value)
+      {
+        ManagedString mg_name( name );
+        _GF_MG_EXCEPTION_TRY
+          NativePtr->setDouble((char*)mg_name.CharPtr, value);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      void Statistics::SetDouble(StatisticDescriptor^ descriptor, double value)
+      {
+        _GF_MG_EXCEPTION_TRY
+            NativePtr->setDouble(GetNativePtr<gemfire_statistics::StatisticDescriptor>(descriptor), value);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      int32_t Statistics::GetInt(int32_t id)
+      {
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->getInt(id);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      int32_t Statistics::GetInt(StatisticDescriptor^ descriptor)
+      {
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->getInt(GetNativePtr<gemfire_statistics::StatisticDescriptor>(descriptor));
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      int32_t Statistics::GetInt(String^ name)
+      {
+        ManagedString mg_name( name );
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->getInt((char*)mg_name.CharPtr);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      int64_t Statistics::GetLong(int32_t id)
+      {
+        _GF_MG_EXCEPTION_TRY
+           return NativePtr->getLong(id);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+       int64_t Statistics::GetLong(StatisticDescriptor^ descriptor)
+       {
+          _GF_MG_EXCEPTION_TRY
+            return NativePtr->getLong(GetNativePtr<gemfire_statistics::StatisticDescriptor>(descriptor));
+          _GF_MG_EXCEPTION_CATCH_ALL
+       }
+
+      int64_t Statistics::GetLong(String^ name)
+      {
+        ManagedString mg_name( name );
+        _GF_MG_EXCEPTION_TRY
+         return NativePtr->getLong((char*)mg_name.CharPtr);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      double Statistics::GetDouble(int32_t id)
+      {
+         _GF_MG_EXCEPTION_TRY
+           return NativePtr->getDouble(id);
+         _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      double Statistics::GetDouble(StatisticDescriptor^ descriptor)
+      {
+        _GF_MG_EXCEPTION_TRY
+           return NativePtr->getDouble(GetNativePtr<gemfire_statistics::StatisticDescriptor>(descriptor));
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      double Statistics::GetDouble(String^ name)
+      {
+        ManagedString mg_name( name );
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->getDouble((char*)mg_name.CharPtr);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      int64_t Statistics::GetRawBits(StatisticDescriptor^ descriptor)
+      {
+         _GF_MG_EXCEPTION_TRY
+           return NativePtr->getRawBits(GetNativePtr<gemfire_statistics::StatisticDescriptor>(descriptor));
+         _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      int32_t Statistics::IncInt(int32_t id, int32_t delta)
+      {
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->incInt(id,delta);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      int32_t Statistics::IncInt(StatisticDescriptor^ descriptor, int32_t delta)
+      {
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->incInt(GetNativePtr<gemfire_statistics::StatisticDescriptor>(descriptor),delta);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      int32_t Statistics::IncInt(String^ name, int32_t delta)
+      {
+         ManagedString mg_name( name );
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->incInt((char*)mg_name.CharPtr,delta);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      int64_t Statistics::IncLong(int32_t id, int64_t delta)
+      {
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->incLong(id,delta);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      int64_t Statistics::IncLong(StatisticDescriptor^ descriptor, int64_t delta)
+      {
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->incLong(GetNativePtr<gemfire_statistics::StatisticDescriptor>(descriptor),delta);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      int64_t Statistics::IncLong(String^ name, int64_t delta)
+      {
+         ManagedString mg_name( name );
+         _GF_MG_EXCEPTION_TRY
+           return NativePtr->incLong((char*)mg_name.CharPtr,delta);
+         _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      double Statistics::IncDouble(int32_t id, double delta)
+      {
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->incDouble(id,delta);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      double Statistics::IncDouble(StatisticDescriptor^ descriptor, double delta)
+      {
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->incDouble(GetNativePtr<gemfire_statistics::StatisticDescriptor>(descriptor),delta);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      double Statistics::IncDouble(String^ name, double delta)
+      {
+        ManagedString mg_name( name );
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->incDouble((char*)mg_name.CharPtr,delta);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+    }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/src/clicache/StatisticsM.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/src/clicache/StatisticsM.hpp b/geode-client-native/src/clicache/StatisticsM.hpp
new file mode 100644
index 0000000..7f17977
--- /dev/null
+++ b/geode-client-native/src/clicache/StatisticsM.hpp
@@ -0,0 +1,531 @@
+/*=========================================================================
+ * 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 "impl/NativeWrapper.hpp"
+#include "cppcache/statistics/Statistics.hpp"
+#include "cppcache/statistics/StatisticDescriptor.hpp"   
+#include "cppcache/statistics/StatisticsType.hpp"
+
+namespace GemStone
+{
+  namespace GemFire
+  {
+    namespace Cache
+    {
+      ref class StatisticDescriptor;
+      ref class StatisticsType;
+
+      /// <summary>
+      /// An instantiation of an existing <c>StatisticsType</c> object with methods for
+      /// setting, incrementing and getting individual <c>StatisticDescriptor</c> values.
+      /// </summary>
+      /// <para>
+      /// The class is purposefully inherited from UMWrapN and not UMWrap as the destructor
+      /// of the class is protected, and so it is now not called from inside the InternalCleanup
+      /// method.
+      /// </para>
+      [Obsolete("Use classes and APIs from the GemStone.GemFire.Cache.Generic namespace")]
+      public ref class Statistics sealed
+        : public Internal::UMWrapN<gemfire_statistics::Statistics>
+       {
+       public:
+
+         /// <summary>
+         /// Closes these statistics.  After statistics have been closed, they
+         /// are no longer archived.
+         /// A value access on a closed statistics always results in zero.
+         /// A value modification on a closed statistics is ignored.
+         /// </summary>
+         virtual void Close();
+
+         /// <summary>
+         /// Returns the id of the statistic with the given name in this
+         /// statistics instance.
+         /// </summary>
+         /// <param name="name">the statistic name</param>
+         /// <returns>the id of the statistic with the given name</returns>
+         /// <exception cref="IllegalArgumentException">
+         /// if no statistic named <c>name</c> exists in this
+         /// statistics instance.
+         /// </exception>
+         /// <see cref="StatisticsType#nameToDescriptor" />        
+         virtual int32_t NameToId(String^ name);
+
+         /// <summary>
+         /// Returns the descriptor of the statistic with the given name in this
+         /// statistics instance.
+         /// </summary>
+         /// <param name="name">the statistic name</param>
+         /// <returns>the descriptor of the statistic with the given name</returns>
+         /// <exception cref="IllegalArgumentException">
+         /// if no statistic named <c>name</c> exists in this
+         /// statistics instance.
+         /// </exception>
+         /// <see cref="StatisticsType#nameToId" />
+         virtual StatisticDescriptor^ NameToDescriptor(String^ name);
+
+         /// <summary>
+         /// Gets a value that uniquely identifies this statistics.
+         /// </summary>
+         virtual property int64_t UniqueId
+         {
+           virtual int64_t get( );
+         }
+
+         /// <summary>
+         /// Gets the <see cref="StatisticsType" /> of this instance.
+         /// </summary>
+         virtual property StatisticsType^ Type
+         {
+           virtual StatisticsType^ get( );
+         }
+
+         /// <summary>
+         /// Gets the text associated with this instance that helps identify it.
+         /// </summary>
+         virtual property String^ TextId
+         {
+           virtual String^ get( );
+         }
+
+         /// <summary>
+         /// Gets the number associated with this instance that helps identify it.
+         /// </summary>
+         virtual property int64_t NumericId 
+         {
+           virtual int64_t get( );
+         }
+
+         /// <summary>
+         /// Returns true if modifications are atomic. This means that multiple threads
+         /// can safely modify this instance without additional synchronization.
+         /// </summary>
+         /// <para>
+         /// Returns false if modifications are not atomic. This means that modifications
+         /// to this instance are cheaper but not thread safe.
+         /// </para>
+         /// <para>
+         /// Note that all instances that are <see cref="#isShared" /> shared are also atomic.
+         /// </para>
+         virtual property bool IsAtomic
+         {
+           virtual bool get( );
+         }
+
+         /// <summary>
+         /// Returns true if the data for this instance is stored in shared memory.
+         /// Returns false if the data is store in local memory.
+         /// </summary>
+         /// <para>
+         /// Note that all instances that are <see cref="#isShared" /> shared are also atomic.
+         /// </para>
+         virtual property bool IsShared
+         {
+           virtual bool get( );
+         }
+
+         /// <summary>
+         /// Returns true if the instance has been <see cref="#close" /> closed.
+         /// </summary>
+         virtual property bool IsClosed
+         {
+           virtual bool get( );
+         }
+
+         /// <summary>
+         /// Sets the value of a statistic with the given <c>id</c>
+         /// whose type is <c>int</c>.
+         /// </summary>
+         /// <param name="id">a statistic id obtained with <see cref="#nameToId" />
+         /// or <see cref="#StatisticsType#nameToId" /> </param>
+         /// <param name="value">value to set</param>
+         /// <exception cref="IllegalArgumentException">
+         /// If the id is invalid.
+         /// </exception>
+         virtual void SetInt(int32_t id, int32_t value);
+
+         /// <summary>
+         /// Sets the value of a named statistic of type <c>int</c>
+         /// </summary>
+         /// <param name="name">statistic name</param>
+         /// <param name="value">value to set</param>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists named <c>name</c> or
+         /// if the statistic with name <c>name</c> is not of
+         /// type <c>int</c>.
+         /// </exception>
+         virtual void SetInt(String^ name, int32_t value);
+
+         /// <summary>
+         /// Sets the value of a described statistic of type <c>int</c>
+         /// </summary>
+         /// <param name="descriptor">a statistic descriptor obtained with <see cref="#nameToDescriptor" />
+         /// or <see cref="#StatisticsType#nameToDescriptor" /> </param>
+         /// <param name="value">value to set</param>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists for the given <c>descriptor</c> or
+         /// if the described statistic is not of
+         /// type <c>int</c>.
+         /// </exception>
+         virtual void SetInt(StatisticDescriptor^ descriptor, int32_t value);
+
+         /// <summary>
+         /// Sets the value of a statistic with the given <c>id</c>
+         /// whose type is <c>long</c>.
+         /// </summary>
+         /// <param name="id">a statistic id obtained with <see cref="#nameToId" /> 
+         /// or <see cref="#StatisticsType#nameToId" />. </param>
+         /// <param name="value">value to set</param>
+         /// <exception cref="IllegalArgumentException">
+         /// If the id is invalid.
+         /// </exception>
+         virtual void SetLong(int32_t id, int64_t value); 
+
+         /// <summary>
+         /// Sets the value of a described statistic of type <c>long</c>
+         /// </summary>
+         /// <param name="descriptor">a statistic descriptor obtained with <see cref="#nameToDescriptor" />
+         /// or <see cref="StatisticsType#nameToDescriptor" /> </param>
+         /// <param name="value">value to set</param>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists for the given <c>descriptor</c> or
+         /// if the described statistic is not of
+         /// type <c>long</c>.
+         /// </exception>
+         virtual void SetLong(StatisticDescriptor^ descriptor, int64_t value);
+
+         /// <summary>
+         /// Sets the value of a named statistic of type <c>long</c>.
+         /// </summary>
+         /// <param name="name">statistic name</param>
+         /// <param name="value">value to set</param>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists named <c>name</c> or
+         /// if the statistic with name <c>name</c> is not of
+         /// type <c>long</c>.
+         /// </exception>
+         virtual void SetLong(String^ name, int64_t value);
+
+
+         /// <summary>
+         /// Sets the value of a statistic with the given <c>id</c>
+         /// whose type is <c>double</c>.
+         /// </summary>
+         /// <param name="id">a statistic id obtained with <see cref="#nameToId" />
+         /// or <see cref="#StatisticsType#nameToId" /> </param>
+         /// <param name="value">value to set</param>
+         /// <exception cref="IllegalArgumentException">
+         /// If the id is invalid.
+         /// </exception>
+         virtual void SetDouble(int32_t id, double value);
+
+         /// <summary>
+         /// Sets the value of a named statistic of type <c>double</c>
+         /// </summary>
+         /// <param name="name">statistic name</param>
+         /// <param name="value">value to set</param>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists named <c>name</c> or
+         /// if the statistic with name <c>name</c> is not of
+         /// type <c>double</c>.
+         /// </exception>
+         virtual void SetDouble(String^ name, double value);
+
+         /// <summary>
+         /// Sets the value of a described statistic of type <c>double</c>
+         /// </summary>
+         /// <param name="descriptor">a statistic descriptor obtained with <see cref="#nameToDescriptor" />
+         /// or <see cref="StatisticsType#nameToDescriptor" /> </param>
+         /// <param name="value">value to set</param>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists for the given <c>descriptor</c> or
+         /// if the described statistic is not of
+         /// type <c>double</c>.
+         /// </exception>
+         virtual void SetDouble(StatisticDescriptor^ descriptor, double value);
+
+         /// <summary>
+         /// Returns the value of the identified statistic of type <c>int</c>.
+         /// whose type is <c>double</c>.
+         /// </summary>
+         /// <param name="id">a statistic id obtained with <see cref="#nameToId" />
+         /// or <see cref="#StatisticsType#nameToId" /> </param>
+         /// <exception cref="IllegalArgumentException">
+         /// If the id is invalid.
+         /// </exception>
+         virtual int32_t GetInt(int32_t id);
+
+         /// <summary>
+         /// Returns the value of the described statistic of type <code>int</code>.
+         /// </summary>
+         /// <param name="descriptor">a statistic descriptor obtained with <see cref="#nameToDescriptor" />
+         /// or <see cref="StatisticsType#nameToDescriptor" /> </param>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists with the specified <c>descriptor</c> or
+         /// if the described statistic is not of
+         /// type <c>int</c>.
+         /// </exception>
+         virtual int32_t GetInt(StatisticDescriptor^ descriptor);
+
+
+         /// <summary>
+         /// Returns the value of the statistic of type <code>int</code> at
+         /// the given name.
+         /// </summary>
+         /// <param name="name">statistic name</param>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists named <c>name</c> or
+         /// if the statistic with name <c>name</c> is not of
+         /// type <c>int</c>.
+         /// </exception>
+         virtual int32_t GetInt(String^ name);
+
+         /// <summary>
+         /// Returns the value of the identified statistic of type <c>long</c>.
+         /// </summary>
+         /// <param name="id">a statistic id obtained with <see cref="#nameToId" />
+         /// or <see cref="#StatisticsType#nameToId" /> </param>
+         /// <exception cref="IllegalArgumentException">
+         /// If the id is invalid.
+         /// </exception>
+         virtual int64_t GetLong(int32_t id);
+
+         
+         /// <summary>
+         /// Returns the value of the described statistic of type <c>long</c>.
+         /// </summary>
+         /// <param name="descriptor">a statistic descriptor obtained with <see cref="#nameToDescriptor" />
+         /// or <see cref="StatisticsType#nameToDescriptor" /> </param>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists with the specified <c>descriptor</c> or
+         /// if the described statistic is not of
+         /// type <c>long</c>.
+         /// </exception>
+         virtual int64_t GetLong(StatisticDescriptor^ descriptor);
+
+         
+         /// <summary>
+         /// Returns the value of the statistic of type <c>long</c> at
+         /// the given name.
+         /// </summary>
+         /// <param name="name">statistic name</param>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists named <c>name</c> or
+         /// if the statistic with name <c>name</c> is not of
+         /// type <c>long</c>.
+         /// </exception>
+         virtual int64_t GetLong(String^ name);
+
+
+         /// <summary>
+         /// Returns the value of the identified statistic of type <c>double</c>.
+         /// </summary>
+         /// <param name="id">a statistic id obtained with <see cref="#nameToId" />
+         /// or <see cref="#StatisticsType#nameToId" /> </param>
+         /// <exception cref="IllegalArgumentException">
+         /// If the id is invalid.
+         /// </exception>
+         virtual double GetDouble(int32_t id);
+                  
+         /// <summary>
+         /// Returns the value of the described statistic of type <c>double</c>.
+         /// </summary>
+         /// <param name="descriptor">a statistic descriptor obtained with <see cref="#nameToDescriptor" />
+         /// or <see cref="StatisticsType#nameToDescriptor" /> </param>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists with the specified <c>descriptor</c> or
+         /// if the described statistic is not of
+         /// type <c>double</c>.
+         /// </exception>
+         virtual double GetDouble(StatisticDescriptor^ descriptor);
+
+         /// <summary>
+         /// Returns the value of the statistic of type <c>double</c> at
+         /// the given name.
+         /// </summary>
+         /// <param name="name">statistic name</param>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists named <c>name</c> or
+         /// if the statistic with name <c>name</c> is not of
+         /// type <c>double</c>.
+         /// </exception>
+         virtual double GetDouble(String^ name);
+
+         /// <summary>
+         /// Returns the bits that represent the raw value of the described statistic.
+         /// </summary>
+         /// <param name="descriptor">a statistic descriptor obtained with <see cref="#nameToDescriptor" />
+         /// or <see cref="StatisticsType#nameToDescriptor" /> </param>
+         /// <exception cref="IllegalArgumentException">
+         /// If the described statistic does not exist
+         /// </exception>
+         virtual int64_t GetRawBits(StatisticDescriptor^ descriptor);
+
+         /// <summary>
+         /// Increments the value of the identified statistic of type <c>int</c>
+         /// by the given amount.
+         /// </summary>
+         /// <param name="id">a statistic id obtained with <see cref="#nameToId" />
+         /// or <see cref="#StatisticsType#nameToId" /> </param>
+         /// <param name="delta">the value of the statistic after it has been incremented</param>
+         /// <returns>the value of the statistic after it has been incremented</returns>
+         /// <exception cref="IllegalArgumentException">
+         /// If the id is invalid.
+         /// </exception>
+         virtual int32_t IncInt(int32_t id, int32_t delta);
+
+         /// <summary>
+         /// Increments the value of the described statistic of type <c>int</c>
+         /// by the given amount.
+         /// </summary>
+         /// <param name="descriptor">a statistic descriptor obtained with <see cref="#nameToDescriptor" />
+         /// or <see cref="StatisticsType#nameToDescriptor" /> </param>
+         /// <param name="delta">change value to be added</param>
+         /// <returns>the value of the statistic after it has been incremented</returns>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists for the given <c>descriptor</c> or
+         /// if the described statistic is not of
+         /// type <c>int</c>.
+         /// </exception>
+         virtual int32_t IncInt(StatisticDescriptor^ descriptor, int32_t delta);
+
+         /// <summary>
+         /// Increments the value of the statistic of type <c>int</c> with
+         /// the given name by a given amount.
+         /// </summary>
+         /// <param name="name">statistic name</param>
+         /// <param name="delta">change value to be added</param>
+         /// <returns>the value of the statistic after it has been incremented</returns>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists named <c>name</c> or
+         /// if the statistic with name <c>name</c> is not of
+         /// type <c>int</c>.
+         /// </exception>
+         virtual int32_t IncInt(String^ name, int32_t delta);
+
+         /// <summary>
+         /// Increments the value of the identified statistic of type <c>long</c>
+         /// by the given amount.
+         /// </summary>
+         /// <param name="id">a statistic id obtained with <see cref="#nameToId" />
+         /// or <see cref="#StatisticsType#nameToId" /> </param>
+         /// <param name="delta">the value of the statistic after it has been incremented</param>
+         /// <returns>the value of the statistic after it has been incremented</returns>
+         /// <exception cref="IllegalArgumentException">
+         /// If the id is invalid.
+         /// </exception>
+         virtual int64_t IncLong(int32_t id, int64_t delta);
+
+
+         /// <summary>
+         /// Increments the value of the described statistic of type <c>long</c>
+         /// by the given amount.
+         /// </summary>
+         /// <param name="descriptor">a statistic descriptor obtained with <see cref="#nameToDescriptor" />
+         /// or <see cref="StatisticsType#nameToDescriptor" /> </param>
+         /// <param name="delta">change value to be added</param>
+         /// <returns>the value of the statistic after it has been incremented</returns>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists for the given <c>descriptor</c> or
+         /// if the described statistic is not of
+         /// type <c>long</c>.
+         /// </exception>
+         virtual int64_t IncLong(StatisticDescriptor^ descriptor, int64_t delta);
+
+         /// <summary>
+         /// Increments the value of the statistic of type <c>long</c> with
+         /// the given name by a given amount.
+         /// </summary>
+         /// <param name="name">statistic name</param>
+         /// <param name="delta">change value to be added</param>
+         /// <returns>the value of the statistic after it has been incremented</returns>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists named <c>name</c> or
+         /// if the statistic with name <c>name</c> is not of
+         /// type <c>long</c>.
+         /// </exception>
+         virtual int64_t IncLong(String^ name, int64_t delta);
+
+
+         /// <summary>
+         /// Increments the value of the identified statistic of type <c>double</c>
+         /// by the given amount.
+         /// </summary>
+         /// <param name="id">a statistic id obtained with <see cref="#nameToId" />
+         /// or <see cref="#StatisticsType#nameToId" /> </param>
+         /// <param name="delta">the value of the statistic after it has been incremented</param>
+         /// <returns>the value of the statistic after it has been incremented</returns>
+         /// <exception cref="IllegalArgumentException">
+         /// If the id is invalid.
+         /// </exception>
+         virtual double IncDouble(int32_t id, double delta);
+
+         /// <summary>
+         /// Increments the value of the described statistic of type <c>double</c>
+         /// by the given amount.
+         /// </summary>
+         /// <param name="descriptor">a statistic descriptor obtained with <see cref="#nameToDescriptor" />
+         /// or <see cref="StatisticsType#nameToDescriptor" /> </param>
+         /// <param name="delta">change value to be added</param>
+         /// <returns>the value of the statistic after it has been incremented</returns>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists for the given <c>descriptor</c> or
+         /// if the described statistic is not of
+         /// type <c>double</c>.
+         /// </exception>
+         virtual double IncDouble(StatisticDescriptor^ descriptor, double delta);
+
+         /// <summary>
+         /// Increments the value of the statistic of type <c>double</c> with
+         /// the given name by a given amount.
+         /// </summary>
+         /// <param name="name">statistic name</param>
+         /// <param name="delta">change value to be added</param>
+         /// <returns>the value of the statistic after it has been incremented</returns>
+         /// <exception cref="IllegalArgumentException">
+         /// If no statistic exists named <c>name</c> or
+         /// if the statistic with name <c>name</c> is not of
+         /// type <c>double</c>.
+         /// </exception>
+         virtual double IncDouble(String^ name, double delta);
+
+         internal:
+           /// <summary>
+           /// Internal factory function to wrap a native object pointer inside
+           /// this managed class, with null pointer check.
+           /// </summary>
+           /// <param name="nativeptr">native object pointer</param>
+           /// <returns>
+           /// the managed wrapper object, or null if the native pointer is null.
+           /// </returns>
+          inline static Statistics^ Create(
+          gemfire_statistics::Statistics* nativeptr )
+          {
+            return ( nativeptr != nullptr ?
+            gcnew Statistics( nativeptr ) : nullptr );
+          }
+
+         private:
+           /// <summary>
+           /// Private constructor to wrap a native object pointer
+           /// </summary>
+           /// <param name="nativeptr">The native object pointer</param>
+          inline Statistics( gemfire_statistics::Statistics* nativeptr )
+          : UMWrapN( nativeptr, false ) { }
+
+      };
+    }
+  }
+}
+
+
+
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/src/clicache/StatisticsTypeM.cpp
----------------------------------------------------------------------
diff --git a/geode-client-native/src/clicache/StatisticsTypeM.cpp b/geode-client-native/src/clicache/StatisticsTypeM.cpp
new file mode 100644
index 0000000..68fb04d
--- /dev/null
+++ b/geode-client-native/src/clicache/StatisticsTypeM.cpp
@@ -0,0 +1,68 @@
+/*=========================================================================
+ * 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.
+ *=========================================================================
+ */
+
+#include "gf_includes.hpp"
+#include "StatisticsTypeM.hpp"
+#include "StatisticDescriptorM.hpp"
+#include "impl/ManagedString.hpp"
+#include "ExceptionTypesM.hpp"
+
+namespace GemStone
+{
+  namespace GemFire
+  {
+    namespace Cache
+    {
+      String^ StatisticsType::Name::get()
+      {
+        return ManagedString::Get( NativePtr->getName() );
+      }
+
+      String^ StatisticsType::Description::get()
+      {
+        return ManagedString::Get( NativePtr->getDescription() );
+      }
+
+      array<StatisticDescriptor^>^ StatisticsType::Statistics::get()
+      {
+        _GF_MG_EXCEPTION_TRY
+
+          gemfire_statistics::StatisticDescriptor ** nativedescriptors = NativePtr->getStatistics();
+          array<StatisticDescriptor^>^ descriptors = gcnew array<StatisticDescriptor^>(NativePtr->getDescriptorsCount());
+          for (int item = 0; item < NativePtr->getDescriptorsCount(); item++)
+          {
+            descriptors[item] = GemStone::GemFire::Cache::StatisticDescriptor::Create(nativedescriptors[item]);
+          }
+          return descriptors;
+
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      int32_t StatisticsType::NameToId( String^ name )
+      {
+        ManagedString mg_name( name );
+        _GF_MG_EXCEPTION_TRY
+          return NativePtr->nameToId(mg_name.CharPtr);
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      StatisticDescriptor^ StatisticsType::NameToDescriptor( String^ name )
+      {
+        ManagedString mg_name( name );
+        _GF_MG_EXCEPTION_TRY
+          return GemStone::GemFire::Cache::StatisticDescriptor::Create(NativePtr->nameToDescriptor(mg_name.CharPtr));
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      int32_t StatisticsType::DescriptorsCount::get()
+      {
+        return NativePtr->getDescriptorsCount();
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/src/clicache/StatisticsTypeM.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/src/clicache/StatisticsTypeM.hpp b/geode-client-native/src/clicache/StatisticsTypeM.hpp
new file mode 100644
index 0000000..39c98b7
--- /dev/null
+++ b/geode-client-native/src/clicache/StatisticsTypeM.hpp
@@ -0,0 +1,128 @@
+/*=========================================================================
+ * 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 "impl/NativeWrapper.hpp"
+#include "cppcache/statistics/StatisticsType.hpp"
+#include "cppcache/statistics/StatisticDescriptor.hpp"
+
+namespace GemStone
+{
+  namespace GemFire
+  {
+    namespace Cache
+    {
+      ref class StatisticDescriptor;
+
+      /// <summary>
+      /// This class is used to describe a logical collection of StatisticDescriptors.These descriptions
+      /// are used to create an instance of <see cref="Statistics" /> class.
+      /// </summary>
+      /// <para>
+      /// To get an instance of this interface use an instance of
+      /// <see cref="StatisticsFactory" /> class.
+      /// </para>
+      /// <para>
+      /// The class is purposefully inherited from UMWrapN and not UMWrap as the destructor
+      /// of the class is protected, and so it is now not called from inside the InternalCleanup
+      /// method.
+      /// </para>
+      [Obsolete("Use classes and APIs from the GemStone.GemFire.Cache.Generic namespace")]
+      public ref class StatisticsType sealed
+        : public Internal::UMWrapN<gemfire_statistics::StatisticsType>
+      {
+      public:
+        /// <summary>
+        /// Returns the name of this statistics type.
+        /// </summary>
+        virtual property String^ Name
+        {
+          virtual String^ get( );
+        }
+
+        /// <summary>
+        /// Returns a description of this statistics type.
+        /// </summary>
+        virtual property String^ Description
+        {
+          virtual String^ get( );
+        }
+
+        /// <summary>
+        /// Returns descriptions of the statistics that this statistics type
+        /// gathers together.
+        /// </summary>
+        virtual property array<StatisticDescriptor^>^ Statistics
+        {
+          virtual array<StatisticDescriptor^>^ get( );
+        }
+
+        /// <summary>
+        /// Returns the id of the statistic with the given name in this
+        /// statistics instance.
+        /// </summary>
+        /// <param name="name">the statistic name</param>
+        /// <returns>the id of the statistic with the given name</returns>
+        /// <exception cref="IllegalArgumentException">
+        /// if no statistic named <c>name</c> exists in this
+        /// statistic instance.
+        /// </exception>
+        virtual int32_t NameToId(String^ name);
+
+        /// <summary>
+        /// Returns the descriptor of the statistic with the given name in this
+        /// statistics instance.
+        /// </summary>
+        /// <param name="name">the statistic name</param>
+        /// <returns>the descriptor of the statistic with the given name</returns>
+        /// <exception cref="IllegalArgumentException">
+        /// if no statistic named <c>name</c> exists in this
+        /// statistic instance.
+        /// </exception>
+        virtual StatisticDescriptor^ NameToDescriptor(String^ name);
+
+        /// <summary>
+        /// Returns the total number of statistics descriptors in the type.
+        /// </summary>
+        virtual property int32_t DescriptorsCount
+        {
+          virtual int32_t get( );
+        }
+
+      internal:
+        /// <summary>
+        /// Internal factory function to wrap a native object pointer inside
+        /// this managed class, with null pointer check.
+        /// </summary>
+        /// <param name="nativeptr">native object pointer</param>
+        /// <returns>
+        /// the managed wrapper object, or null if the native pointer is null.
+        /// </returns>
+        inline static StatisticsType^ Create(
+          gemfire_statistics::StatisticsType* nativeptr )
+        {
+          return ( nativeptr != nullptr ?
+            gcnew StatisticsType( nativeptr ) : nullptr );
+        }
+
+      private:
+        /// <summary>
+        /// Private constructor to wrap a native object pointer
+        /// </summary>
+        /// <param name="nativeptr">The native object pointer</param>
+        inline StatisticsType( gemfire_statistics::StatisticsType* nativeptr )
+          : UMWrapN( nativeptr, false ) { }
+
+      };
+    }
+  }
+}
+
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/src/clicache/StructM.cpp
----------------------------------------------------------------------
diff --git a/geode-client-native/src/clicache/StructM.cpp b/geode-client-native/src/clicache/StructM.cpp
new file mode 100644
index 0000000..86e7389
--- /dev/null
+++ b/geode-client-native/src/clicache/StructM.cpp
@@ -0,0 +1,71 @@
+/*=========================================================================
+ * 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.
+ *=========================================================================
+ */
+
+#include "gf_includes.hpp"
+#include "cppcache/Struct.hpp"
+#include "StructM.hpp"
+#include "StructSetM.hpp"
+#include "impl/SafeConvert.hpp"
+
+
+using namespace System;
+
+namespace GemStone
+{
+  namespace GemFire
+  {
+    namespace Cache
+    {
+
+      IGFSerializable^ Struct::default::get( size_t index )
+      {
+        _GF_MG_EXCEPTION_TRY
+
+          return SafeUMSerializableConvert(static_cast<gemfire::Struct*>(
+            NativePtr())->operator[](static_cast<int32_t>(index)).ptr());
+
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      IGFSerializable^ Struct::default::get( String^ fieldName )
+      {
+        ManagedString mg_fieldName( fieldName );
+
+        _GF_MG_EXCEPTION_TRY
+
+          return SafeUMSerializableConvert(static_cast<gemfire::Struct*>(
+            NativePtr())->operator[](mg_fieldName.CharPtr).ptr());
+
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      StructSet^ Struct::Set::get( )
+      {
+        return StructSet::Create(static_cast<gemfire::Struct*>(
+          NativePtr())->getStructSet().ptr());
+      }
+
+      bool Struct::HasNext( )
+      {
+        return static_cast<gemfire::Struct*>(NativePtr())->hasNext();
+      }
+
+      size_t Struct::Length::get( )
+      {
+        return static_cast<gemfire::Struct*>(NativePtr())->length();
+      }
+
+      IGFSerializable^ Struct::Next( )
+      {
+        return SafeUMSerializableConvert(static_cast<gemfire::Struct*>(
+          NativePtr())->next().ptr());
+      }
+
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/src/clicache/StructM.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/src/clicache/StructM.hpp b/geode-client-native/src/clicache/StructM.hpp
new file mode 100644
index 0000000..292564f
--- /dev/null
+++ b/geode-client-native/src/clicache/StructM.hpp
@@ -0,0 +1,132 @@
+/*=========================================================================
+* 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 "SerializableM.hpp"
+#include "cppcache/Struct.hpp"
+
+using namespace System;
+
+namespace GemStone
+{
+  namespace GemFire
+  {
+    namespace Cache
+    {
+
+      ref class StructSet;
+      interface class IGFSerializable;
+
+      /// <summary>
+      /// Encapsulates a row of query struct set.
+      /// </summary>
+      /// <remarks>
+      /// A Struct has a StructSet as its parent. It contains the field values
+      /// returned after executing a Query obtained from a QueryService which in turn
+      /// is obtained from a Cache.
+      /// </remarks>
+      [Obsolete("Use classes and APIs from the GemStone.GemFire.Cache.Generic namespace")]
+      public ref class Struct sealed
+        : public GemStone::GemFire::Cache::Serializable
+      {
+      public:
+
+        /// <summary>
+        /// Get the field value for the given index number.
+        /// </summary>
+        /// <returns>
+        /// The value of the field or null if index is out of bounds.
+        /// </returns>
+        property IGFSerializable^ GFINDEXER( size_t )
+        {
+          IGFSerializable^ get( size_t index );
+        }
+
+        /// <summary>
+        /// Get the field value for the given field name.
+        /// </summary>
+        /// <returns>The value of the field.</returns>
+        /// <exception cref="IllegalArgumentException">
+        /// if the field name is not found.
+        /// </exception>
+        property IGFSerializable^ GFINDEXER( String^ )
+        {
+          IGFSerializable^ get( String^ fieldName );
+        }
+
+        /// <summary>
+        /// Get the parent <c>StructSet</c> of this <c>Struct</c>.
+        /// </summary>
+        /// <returns>
+        /// A reference to the parent <c>StructSet</c> of this <c>Struct</c>.
+        /// </returns>
+        property StructSet^ Set
+        {
+          StructSet^ get( );
+        }
+
+        /// <summary>
+        /// Check whether another field value is available to iterate over
+        /// in this <c>Struct</c>.
+        /// </summary>
+        /// <returns>true if available otherwise false.</returns>
+        bool HasNext( );
+
+        /// <summary>
+        /// Get the number of field values available.
+        /// </summary>
+        /// <returns>the number of field values available.</returns>
+        property size_t Length
+        {
+          size_t get( );
+        }
+
+        /// <summary>
+        /// Get the next field value item available in this <c>Struct</c>.
+        /// </summary>
+        /// <returns>
+        /// A reference to the next item in the <c>Struct</c>
+        /// or null if no more available.
+        /// </returns>
+        IGFSerializable^ Next( );
+
+
+      internal:
+
+        /// <summary>
+        /// Factory function to register wrapper
+        /// </summary>
+        inline static IGFSerializable^ Create( gemfire::Serializable* obj )
+        {
+          return ( obj != nullptr ?
+            gcnew Struct( obj ) : nullptr );
+        }
+
+        inline static IGFSerializable^ CreateDeserializable( )
+        {
+          return gcnew Struct(  ) ;
+        }
+
+      private:
+
+        /// <summary>
+        /// Private constructor to wrap a native object pointer
+        /// </summary>
+        /// <param name="nativeptr">The native object pointer</param>
+        inline Struct( gemfire::Serializable* nativeptr )
+          : GemStone::GemFire::Cache::Serializable( nativeptr ) { }
+
+        inline Struct(  )
+          : GemStone::GemFire::Cache::Serializable( gemfire::Struct::createDeserializable()) { }
+      };
+
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/src/clicache/StructSetM.cpp
----------------------------------------------------------------------
diff --git a/geode-client-native/src/clicache/StructSetM.cpp b/geode-client-native/src/clicache/StructSetM.cpp
new file mode 100644
index 0000000..b3ecf9e
--- /dev/null
+++ b/geode-client-native/src/clicache/StructSetM.cpp
@@ -0,0 +1,79 @@
+/*=========================================================================
+ * 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.
+ *=========================================================================
+ */
+
+#include "gf_includes.hpp"
+#include "StructSetM.hpp"
+#include "SelectResultsIteratorM.hpp"
+#include "impl/SafeConvert.hpp"
+
+using namespace System;
+
+namespace GemStone
+{
+  namespace GemFire
+  {
+    namespace Cache
+    {
+
+      bool StructSet::IsModifiable::get( )
+      {
+        return NativePtr->isModifiable( );
+      }
+
+      int32_t StructSet::Size::get( )
+      {
+        return NativePtr->size( );
+      }
+
+      IGFSerializable^ StructSet::default::get( size_t index )
+      {
+        _GF_MG_EXCEPTION_TRY
+
+          return SafeUMSerializableConvert((NativePtr->operator[](static_cast<int32_t>(index))).ptr());
+
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      SelectResultsIterator^ StructSet::GetIterator( )
+      {
+        gemfire::SelectResultsIterator* nativeptr =
+          new gemfire::SelectResultsIterator(NativePtr->getIterator());
+
+        return SelectResultsIterator::Create( nativeptr );
+      }
+
+      System::Collections::Generic::IEnumerator<IGFSerializable^>^
+        StructSet::GetEnumerator( )
+      {
+        return GetIterator( );
+      }
+
+      System::Collections::IEnumerator^ StructSet::GetIEnumerator( )
+      {
+        return GetIterator( );
+      }
+
+      size_t StructSet::GetFieldIndex( String^ fieldName )
+      {
+        ManagedString mg_fieldName( fieldName );
+
+        _GF_MG_EXCEPTION_TRY
+
+          return NativePtr->getFieldIndex( mg_fieldName.CharPtr );
+
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      String^ StructSet::GetFieldName( size_t index )
+      {
+        return ManagedString::Get( NativePtr->getFieldName( static_cast<int32_t> (index) ) );
+      }
+
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/src/clicache/StructSetM.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/src/clicache/StructSetM.hpp b/geode-client-native/src/clicache/StructSetM.hpp
new file mode 100644
index 0000000..f7d7eee
--- /dev/null
+++ b/geode-client-native/src/clicache/StructSetM.hpp
@@ -0,0 +1,151 @@
+/*=========================================================================
+ * 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/StructSet.hpp"
+#include "impl/NativeWrapper.hpp"
+#include "ICqResults.hpp"
+
+
+using namespace System;
+
+namespace GemStone
+{
+  namespace GemFire
+  {
+    namespace Cache
+    {
+
+      ref class SelectResultsIterator;
+      interface class IGFSerializable;
+
+      /// <summary>
+      /// Encapsulates a query struct set.
+      /// </summary>
+      [Obsolete("Use classes and APIs from the GemStone.GemFire.Cache.Generic namespace")]
+      public ref class StructSet sealed
+        : public Internal::SBWrap<gemfire::StructSet>, public ICqResults
+      {
+      public:
+
+        /// <summary>
+        /// True if this <c>StructSet</c> is modifiable.
+        /// </summary>
+        /// <returns>returns false always at this time.</returns>
+        virtual property bool IsModifiable
+        {
+          virtual bool get( );
+        }
+
+        /// <summary>
+        /// The size of the <c>StructSet</c>.
+        /// </summary>
+        /// <returns>
+        /// the number of items in the <c>StructSet</c>.
+        /// </returns>
+        virtual property int32_t Size
+        {
+          virtual int32_t get( );
+        }
+
+        /// <summary>
+        /// Index operator to directly access an item in the <c>StructSet</c>.
+        /// </summary>
+        /// <exception cref="IllegalArgumentException">
+        /// if the index is out of bounds.
+        /// </exception>
+        /// <returns>Item at the given index.</returns>
+        virtual property IGFSerializable^ GFINDEXER( size_t )
+        {
+          virtual IGFSerializable^ get( size_t index );
+        }
+
+        /// <summary>
+        /// Get a <c>SelectResultsIterator</c> with which to iterate
+        /// over the items in the <c>StructSet</c>.
+        /// </summary>
+        /// <returns>
+        /// The <c>SelectResultsIterator</c> with which to iterate.
+        /// </returns>
+        virtual SelectResultsIterator^ GetIterator( );
+
+        /// <summary>
+        /// Get the index number of the specified field name
+        /// in the <c>StructSet</c>.
+        /// </summary>
+        /// <param name="fieldName">
+        /// the field name for which the index is required.
+        /// </param>
+        /// <returns>the index number of the specified field name.</returns>
+        /// <exception cref="IllegalArgumentException">
+        /// if the field name is not found.
+        /// </exception>
+        size_t GetFieldIndex( String^ fieldName );
+
+        /// <summary>
+        /// Get the field name of the <c>StructSet</c> from the
+        /// specified index number.
+        /// </summary>
+        /// <param name="index">
+        /// the index number of the field name to get.
+        /// </param>
+        /// <returns>
+        /// the field name from the specified index number or null if not found.
+        /// </returns>
+        String^ GetFieldName( size_t index );
+
+
+        // Region: IEnumerable<IGFSerializable^> Members
+
+        /// <summary>
+        /// Returns an enumerator that iterates through the <c>StructSet</c>.
+        /// </summary>
+        /// <returns>
+        /// A <c>System.Collections.Generic.IEnumerator</c> that
+        /// can be used to iterate through the <c>StructSet</c>.
+        /// </returns>
+        virtual System::Collections::Generic::IEnumerator<IGFSerializable^>^
+          GetEnumerator( );
+
+        // End Region: IEnumerable<IGFSerializable^> Members
+
+
+      internal:
+
+        /// <summary>
+        /// Internal factory function to wrap a native object pointer inside
+        /// this managed class with null pointer check.
+        /// </summary>
+        /// <param name="nativeptr">The native object pointer</param>
+        /// <returns>
+        /// The managed wrapper object; null if the native pointer is null.
+        /// </returns>
+        inline static StructSet^ Create(gemfire::StructSet* nativeptr)
+        {
+          return (nativeptr != nullptr ? gcnew StructSet(nativeptr) : nullptr);
+        }
+
+
+      private:
+
+        virtual System::Collections::IEnumerator^ GetIEnumerator( ) sealed
+          = System::Collections::IEnumerable::GetEnumerator;
+
+        /// <summary>
+        /// Private constructor to wrap a native object pointer
+        /// </summary>
+        /// <param name="nativeptr">The native object pointer</param>
+        inline StructSet(gemfire::StructSet* nativeptr)
+          : SBWrap(nativeptr) { }
+      };
+
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/src/clicache/SystemPropertiesM.cpp
----------------------------------------------------------------------
diff --git a/geode-client-native/src/clicache/SystemPropertiesM.cpp b/geode-client-native/src/clicache/SystemPropertiesM.cpp
new file mode 100644
index 0000000..c71b830
--- /dev/null
+++ b/geode-client-native/src/clicache/SystemPropertiesM.cpp
@@ -0,0 +1,219 @@
+/*=========================================================================
+ * 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.
+ *=========================================================================
+ */
+
+#include "gf_includes.hpp"
+#include "SystemPropertiesM.hpp"
+#include "PropertiesM.hpp"
+#include "impl/SafeConvert.hpp"
+#include <cppcache/SystemProperties.hpp>
+
+using namespace System;
+
+namespace GemStone
+{
+  namespace GemFire
+  {
+    namespace Cache
+    {
+
+      SystemProperties::SystemProperties( Properties^ properties )
+      {
+        _GF_MG_EXCEPTION_TRY
+
+          SetPtr(new gemfire::SystemProperties(gemfire::PropertiesPtr(
+            GetNativePtr<gemfire::Properties>(properties))), true);
+
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      SystemProperties::SystemProperties( Properties^ properties,
+        String^ configFile )
+      {
+        _GF_MG_EXCEPTION_TRY
+
+          ManagedString mg_configFile( configFile );
+          gemfire::PropertiesPtr propertiesptr(
+            GetNativePtr<gemfire::Properties>( properties ) );
+          SetPtr( new gemfire::SystemProperties( propertiesptr,
+            mg_configFile.CharPtr ), true );
+
+        _GF_MG_EXCEPTION_CATCH_ALL
+      }
+
+      void SystemProperties::LogSettings( )
+      {
+        NativePtr->logSettings( );
+      }
+
+      int32_t SystemProperties::StatisticsSampleInterval::get( )
+      {
+        return NativePtr->statisticsSampleInterval( );
+      }
+
+      bool SystemProperties::StatisticsEnabled::get( )
+      {
+        return NativePtr->statisticsEnabled( );
+      }
+
+      String^ SystemProperties::StatisticsArchiveFile::get( )
+      {
+        return ManagedString::Get( NativePtr->statisticsArchiveFile( ) );
+      }
+
+      String^ SystemProperties::LogFileName::get( )
+      {
+        return ManagedString::Get( NativePtr->logFilename( ) );
+      }
+
+      GemStone::GemFire::Cache::LogLevel SystemProperties::GFLogLevel::get( )
+      {
+        return static_cast<GemStone::GemFire::Cache::LogLevel>( NativePtr->logLevel( ) );
+      }
+
+      bool SystemProperties::HeapLRULimitEnabled::get( )
+      {
+        return NativePtr->heapLRULimitEnabled( );
+      }
+      
+      size_t SystemProperties::HeapLRULimit::get( )
+      {
+        return NativePtr->heapLRULimit( );
+      }
+      
+      int32_t SystemProperties::HeapLRUDelta::get( )
+      {
+        return NativePtr->heapLRUDelta( );
+      }
+      
+      int32_t SystemProperties::MaxSocketBufferSize::get( )
+      {
+        return NativePtr->maxSocketBufferSize( );
+      }
+      
+      int32_t SystemProperties::PingInterval::get( )
+      {
+        return NativePtr->pingInterval( );
+      }
+      
+      int32_t SystemProperties::RedundancyMonitorInterval::get( )
+      {
+        return NativePtr->redundancyMonitorInterval( );
+      }
+      
+      int32_t SystemProperties::NotifyAckInterval::get( )
+      {
+        return NativePtr->notifyAckInterval( );
+      }
+      
+      int32_t SystemProperties::NotifyDupCheckLife::get( )
+      {
+        return NativePtr->notifyDupCheckLife( );
+      }
+      
+      bool SystemProperties::DebugStackTraceEnabled::get( )
+      {
+        return NativePtr->debugStackTraceEnabled( );
+      }
+
+      bool SystemProperties::CrashDumpEnabled::get( )
+      {
+        return NativePtr->crashDumpEnabled();
+      }
+
+      bool SystemProperties::AppDomainEnabled::get( )
+      {
+        return NativePtr->isAppDomainEnabled();
+      }
+
+      String^ SystemProperties::Name::get( )
+      {
+        return ManagedString::Get( NativePtr->name( ) );
+      }
+
+      String^ SystemProperties::CacheXmlFile::get( )
+      {
+        return ManagedString::Get( NativePtr->cacheXMLFile( ) );
+      }
+
+      int32_t SystemProperties::LogFileSizeLimit::get( )
+      {
+        return NativePtr->logFileSizeLimit( );
+      }
+
+	  int32_t SystemProperties::LogDiskSpaceLimit::get( )
+      {
+		  return NativePtr->logDiskSpaceLimit( );
+      }
+
+      int32_t SystemProperties::StatsFileSizeLimit::get( )
+      {
+        return NativePtr->statsFileSizeLimit( );
+      }
+
+	  int32_t SystemProperties::StatsDiskSpaceLimit::get( )
+      {
+		  return NativePtr->statsDiskSpaceLimit( );
+      }
+
+      uint32_t SystemProperties::MaxQueueSize::get( )
+      {
+        return NativePtr->maxQueueSize( );
+      }
+
+      bool SystemProperties::SSLEnabled::get( )
+      {
+        return NativePtr->sslEnabled();
+      }
+
+      String^ SystemProperties::SSLKeyStore::get()
+      {
+        return ManagedString::Get(NativePtr->sslKeyStore());
+      }
+
+      String^ SystemProperties::SSLTrustStore::get()
+      {
+        return ManagedString::Get(NativePtr->sslTrustStore());
+      }
+      // adongre
+      String^ SystemProperties::SSLKeystorePassword::get()
+      {
+        return ManagedString::Get(NativePtr->sslKeystorePassword());
+      }
+
+      bool SystemProperties::IsSecurityOn::get( )
+      {
+        return NativePtr->isSecurityOn( );
+      }
+
+      Properties^ SystemProperties::GetSecurityProperties::get( )
+      {
+        return Properties::Create( NativePtr->getSecurityProperties( ).ptr( ) );
+      }
+
+      String^ SystemProperties::DurableClientId::get( )
+      {
+        return ManagedString::Get( NativePtr->durableClientId( ) );
+      }
+
+      uint32_t SystemProperties::DurableTimeout::get( )
+      {
+        return NativePtr->durableTimeout( );
+      }
+
+      uint32_t SystemProperties::ConnectTimeout::get( )
+      {
+        return NativePtr->connectTimeout( );
+      }
+
+      String^ SystemProperties::ConflateEvents::get( )
+      {
+        return ManagedString::Get( NativePtr->conflateEvents( ) );
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/src/clicache/SystemPropertiesM.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/src/clicache/SystemPropertiesM.hpp b/geode-client-native/src/clicache/SystemPropertiesM.hpp
new file mode 100644
index 0000000..c337ead
--- /dev/null
+++ b/geode-client-native/src/clicache/SystemPropertiesM.hpp
@@ -0,0 +1,418 @@
+/*=========================================================================
+ * 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/SystemProperties.hpp"
+#include "impl/NativeWrapper.hpp"
+#include "LogM.hpp"
+
+using namespace System;
+
+/*
+namespace gemfire
+{
+  class SystemProperties;
+}
+*/
+
+namespace GemStone
+{
+  namespace GemFire
+  {
+    namespace Cache
+    {
+
+      ref class Properties;
+
+      //ref class IAuthInitialize;
+
+      /// <summary>
+      /// A class for internal use, that encapsulates the properties that can be
+      /// set through <see cref="DistributedSystem.Connect" />
+      /// or a gfcpp.properties file.
+      /// </summary>
+      [Obsolete("Use classes and APIs from the GemStone.GemFire.Cache.Generic namespace")]
+      public ref class SystemProperties sealed
+        : public Internal::UMWrap<gemfire::SystemProperties>
+      {
+      public:
+
+        /// <summary>
+        /// Constructor. Sets the default (hard-coded) values first, and then overwrites those with
+        /// any values found in the given properties.
+        /// </summary>
+        /// <param name="properties">initialize with the given properties</param>
+        SystemProperties( Properties^ properties );
+
+        /// <summary>
+        /// Constructor.
+        /// <ol>
+        /// <li>Sets the default (hard-coded) values.</li>
+        /// <li>Overwrites those with any values from <c>systemDefault/gfcpp.properties</c></li>
+        /// <li>Overwrites those with any values from the given file (if it exists)
+        /// or the local <c>./gfcpp.properties</c> (if the given file does not exist).</li>
+        /// <li>Overwrites those with any values found in the given properties.</li>
+        /// </ol>
+        /// </summary>
+        /// <param name="properties">these overwrite any other values already set</param>
+        /// <param name="configFile">see summary</param>
+        SystemProperties( Properties^ properties, String^ configFile );
+
+        /// <summary>
+        /// Prints all settings to the process log.
+        /// </summary>
+        void LogSettings( );
+
+        /// <summary>
+        /// Returns the sampling interval, that is,
+        /// how often the statistics thread writes to disk, in seconds.
+        /// </summary>
+        /// <returns>the statistics sampling interval</returns>
+        property int32_t StatisticsSampleInterval
+        {
+          int32_t get( );
+        }
+
+        /// <summary>
+        /// True if statistics are enabled (archived).
+        /// </summary>
+        /// <returns>true if enabled</returns>
+        property bool StatisticsEnabled
+        {
+          bool get( );
+        }
+
+        /// <summary>
+        /// Returns the name of the statistics archive file.
+        /// </summary>
+        /// <returns>the filename</returns>
+        property String^ StatisticsArchiveFile
+        {
+          String^ get( );
+        }
+
+        /// <summary>
+        /// Returns the name of the message log file.
+        /// </summary>
+        /// <returns>the filename</returns>
+        property String^ LogFileName
+        {
+          String^ get( );
+        }
+
+        /// <summary>
+        /// Returns the message logging level.
+        /// </summary>
+        /// <returns>the log level</returns>
+        property GemStone::GemFire::Cache::LogLevel GFLogLevel
+        {
+          GemStone::GemFire::Cache::LogLevel get( );
+        }
+
+        /// <summary>
+        /// Returns  a boolean that specifies if heapLRULimit has been enabled for the
+        /// process. If enabled, the HeapLRULimit specifies the maximum amount of memory
+        /// that values in a cache can use to store data before overflowing to disk or
+        /// destroying entries to ensure that the server process never runs out of
+        /// memory
+        /// </summary>
+        /// <returns>true if enabled</returns>
+        property bool HeapLRULimitEnabled
+        {
+          bool get( );
+        }
+
+        /// <summary>
+        /// Returns  the HeapLRULimit value (in bytes), the maximum memory that values
+        /// in a cache can use to store data before overflowing to disk or destroying
+        /// entries to ensure that the server process never runs out of memory due to
+        /// cache memory usage
+        /// </summary>
+        /// <returns>the HeapLRULimit value</returns>
+        property size_t HeapLRULimit
+        {
+          size_t get( );
+        }
+
+        /// <summary>
+        /// Returns  the HeapLRUDelta value (a percent value). This specifies the
+        /// percentage of entries the system will evict each time it detects that
+        /// it has exceeded the HeapLRULimit. Defaults to 10%
+        /// </summary>
+        /// <returns>the HeapLRUDelta value</returns>
+        property int32_t HeapLRUDelta
+        {
+          int32_t get( );
+        }
+
+        /// <summary>
+        /// Returns  the maximum socket buffer size to use
+        /// </summary>
+        /// <returns>the MaxSocketBufferSize value</returns>
+        property int32_t MaxSocketBufferSize
+        {
+          int32_t get( );
+        }
+
+        /// <summary>
+        /// Returns  the time between two consecutive ping to servers
+        /// </summary>
+        /// <returns>the PingInterval value</returns>
+        property int32_t PingInterval
+        {
+          int32_t get( );
+        }
+
+        /// <summary>
+        /// Returns  the time between two consecutive checks for redundancy for HA
+        /// </summary>
+        /// <returns>the RedundancyMonitorInterval value</returns>
+        property int32_t RedundancyMonitorInterval
+        {
+          int32_t get( );
+        }
+
+        /// <summary>
+        /// Returns the periodic notify ack interval
+        /// </summary>
+        /// <returns>the NotifyAckInterval value</returns>
+        property int32_t NotifyAckInterval
+        {
+          int32_t get( );
+        }
+
+        /// <summary>
+        /// Returns the expiry time of an idle event id map entry for duplicate notification checking
+        /// </summary>
+        /// <returns>the NotifyDupCheckLife value</returns>
+        property int32_t NotifyDupCheckLife
+        {
+          int32_t get( );
+        }
+
+        /// <summary>
+        /// True if the stack trace is enabled.
+        /// </summary>
+        /// <returns>true if enabled</returns>
+        property bool DebugStackTraceEnabled
+        {
+          bool get( );
+        }
+
+        /// <summary>
+        /// True if the crash dump generation for unhandled fatal exceptions
+        /// is enabled. If "log-file" property has been specified then they are
+        /// created in the same directory as the log file, and having the same
+        /// prefix as log file. By default crash dumps are created in the
+        /// current working directory and have the "gemfire_cpp" prefix.
+        ///
+        /// The actual dump file will have timestamp and process ID
+        /// in the full name.
+        /// </summary>
+        /// <returns>true if enabled</returns>
+        property bool CrashDumpEnabled
+        {
+          bool get();
+        }
+
+        /// <summary>
+        /// Whether client is running in multiple AppDomain or not.
+        /// Default value is "false".
+        /// </summary>
+        /// <returns>true if enabled</returns>
+        property bool AppDomainEnabled
+        {
+          bool get();
+        }
+
+        /// <summary>
+        /// Returns the system name.
+        /// </summary>
+        /// <returns>the name</returns>
+        property String^ Name
+        {
+          String^ get( );
+        }
+
+        /// <summary>
+        /// Returns the name of the "cache.xml" file.
+        /// </summary>
+        /// <returns>the filename</returns>
+        property String^ CacheXmlFile
+        {
+          String^ get( );
+        }
+
+        /// <summary>
+        /// Returns the maximum log file size, in bytes, or 0 if unlimited.
+        /// </summary>
+        /// <returns>the maximum limit</returns>
+        property int32_t LogFileSizeLimit
+        {
+          int32_t get( );
+        }
+
+        /// <summary>
+        /// Returns the maximum log Disk size, in bytes, or 0 if unlimited.
+        /// </summary>
+        /// <returns>the maximum limit</returns>
+        property int32_t LogDiskSpaceLimit
+        {
+          int32_t get( );
+        }
+
+		/// <summary>
+        /// Returns the maximum statistics file size, in bytes, or 0 if unlimited.
+        /// </summary>
+        /// <returns>the maximum limit</returns>
+        property int32_t StatsFileSizeLimit
+        {
+          int32_t get( );
+        }
+
+        /// <summary>
+        /// Returns the maximum statistics Disk size, in bytes, or 0 if unlimited.
+        /// </summary>
+        /// <returns>the maximum limit</returns>
+        property int32_t StatsDiskSpaceLimit
+        {
+          int32_t get( );
+        }
+
+		/// <summary>
+        /// Returns the max queue size for notification messages
+        /// </summary>
+        /// <returns>the max queue size</returns>
+        property uint32_t MaxQueueSize
+        {
+          uint32_t get( );
+        }
+
+        /// <summary>
+        /// True if ssl connection support is enabled.
+        /// </summary>
+        /// <returns>true if enabled</returns>
+        property bool SSLEnabled
+        {
+          bool get( );
+        }
+
+        /// <summary>
+        /// Returns the SSL private keystore file path.
+        /// </summary>
+        /// <returns>the SSL private keystore file path</returns>
+        property String^ SSLKeyStore
+        {
+          String^ get( );
+        }
+
+        /// <summary>
+        /// Returns the SSL public certificate trust store file path.
+        /// </summary>
+        /// <returns>the SSL public certificate trust store file path</returns>
+        property String^ SSLTrustStore
+        {
+          String^ get( );
+        }
+
+        // adongre
+        /// <summary>
+        /// Returns the client keystore password..
+        /// </summary>
+        /// <returns>Returns the client keystore password.</returns>
+        property String^ SSLKeystorePassword
+        {
+          String^ get( );
+        }
+
+        /// <summary>
+        /// True if client needs to be authenticated
+        /// </summary>
+        /// <returns>true if enabled</returns>
+        property bool IsSecurityOn
+        {
+          bool get( );
+        }
+
+        /// <summary>
+        /// Returns all the security properties
+        /// </summary>
+        /// <returns>the security properties</returns>
+        property Properties^ GetSecurityProperties {
+          Properties^ get( );
+        }
+
+        /// <summary>
+        /// Returns the durable client's ID.
+        /// </summary>
+        /// <returns>the durable client ID</returns>
+        property String^ DurableClientId
+        {
+          String^ get( );
+        }
+
+        /// <summary>
+        /// Returns the durable client's timeout.
+        /// </summary>
+        /// <returns>the durable client timeout</returns>
+        property uint32_t DurableTimeout
+        {
+          uint32_t get( );
+        }
+
+        /// <summary>
+        /// Returns the connect timeout used for server and locator handshakes.
+        /// </summary>
+        /// <returns>the connect timeout used for server and locator handshakes</returns>
+        property uint32_t ConnectTimeout
+        {
+          uint32_t get( );
+        }
+
+        /// <summary>
+        /// Returns the conflate event's option
+        /// </summary>
+        /// <returns>the conflate event option</returns>
+        property String^ ConflateEvents
+        {
+          String^ get( );
+        }
+
+      internal:
+
+        /// <summary>
+        /// Internal factory function to wrap a native object pointer inside
+        /// this managed class, with null pointer check.
+        /// </summary>
+        /// <param name="nativeptr">native object pointer</param>
+        /// <returns>
+        /// the managed wrapper object, or null if the native pointer is null.
+        /// </returns>
+        inline static SystemProperties^ Create(
+          gemfire::SystemProperties* nativeptr )
+        {
+          return ( nativeptr != nullptr ?
+            gcnew SystemProperties( nativeptr ) : nullptr );
+        }
+
+
+      private:
+
+        /// <summary>
+        /// Private constructor to wrap a native object pointer
+        /// </summary>
+        /// <param name="nativeptr">The native object pointer</param>
+        inline SystemProperties( gemfire::SystemProperties* nativeptr )
+          : UMWrap( nativeptr, false ) { }
+      };
+
+    }
+  }
+}



Mime
View raw message