You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2017/08/01 09:27:19 UTC

[34/50] [abbrv] ignite git commit: IGNITE-5771: Added Ignite::SetActive() for C++

IGNITE-5771: Added Ignite::SetActive() for C++


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/47fea40b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/47fea40b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/47fea40b

Branch: refs/heads/ignite-5757
Commit: 47fea40b07857a08727ac2e062cb9a3e0f464fdc
Parents: 2941392
Author: Igor Sapego <is...@gridgain.com>
Authored: Thu Jul 27 19:39:51 2017 +0300
Committer: Igor Sapego <is...@gridgain.com>
Committed: Thu Jul 27 19:39:51 2017 +0300

----------------------------------------------------------------------
 .../cpp/core-test/src/cluster_test.cpp          | 13 ++++++
 .../platforms/cpp/core/include/ignite/ignite.h  | 15 +++++++
 .../ignite/impl/cluster/cluster_group_impl.h    | 15 +++++++
 .../cpp/core/include/ignite/impl/ignite_impl.h  | 46 ++++++++++----------
 modules/platforms/cpp/core/src/ignite.cpp       | 10 +++++
 .../src/impl/cluster/cluster_group_impl.cpp     | 26 ++++++++++-
 .../platforms/cpp/core/src/impl/ignite_impl.cpp | 24 ++++++++++
 7 files changed, 124 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/47fea40b/modules/platforms/cpp/core-test/src/cluster_test.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core-test/src/cluster_test.cpp b/modules/platforms/cpp/core-test/src/cluster_test.cpp
index e9d6728..4ee3f39 100644
--- a/modules/platforms/cpp/core-test/src/cluster_test.cpp
+++ b/modules/platforms/cpp/core-test/src/cluster_test.cpp
@@ -83,4 +83,17 @@ BOOST_AUTO_TEST_CASE(IgniteImplForServers)
     BOOST_REQUIRE(clusterGroup.Get()->ForServers().IsValid());
 }
 
+BOOST_AUTO_TEST_CASE(IgniteSetActive)
+{
+    BOOST_REQUIRE(node.IsActive());
+
+    node.SetActive(false);
+
+    BOOST_REQUIRE(!node.IsActive());
+
+    node.SetActive(true);
+
+    BOOST_REQUIRE(node.IsActive());
+}
+
 BOOST_AUTO_TEST_SUITE_END()
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/47fea40b/modules/platforms/cpp/core/include/ignite/ignite.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/ignite.h b/modules/platforms/cpp/core/include/ignite/ignite.h
index 07134a1..e953b8f 100644
--- a/modules/platforms/cpp/core/include/ignite/ignite.h
+++ b/modules/platforms/cpp/core/include/ignite/ignite.h
@@ -182,6 +182,21 @@ namespace ignite
         }
 
         /**
+         * Check if the Ignite grid is active.
+         *
+         * @return True if grid is active and false otherwise.
+         */
+        bool IsActive();
+
+        /**
+         * Change Ignite grid state to active or inactive.
+         *
+         * @param active If true start activation process. If false start
+         *    deactivation process.
+         */
+        void SetActive(bool active);
+
+        /**
          * Get transactions.
          *
          * This method should only be used on the valid instance.

http://git-wip-us.apache.org/repos/asf/ignite/blob/47fea40b/modules/platforms/cpp/core/include/ignite/impl/cluster/cluster_group_impl.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/impl/cluster/cluster_group_impl.h b/modules/platforms/cpp/core/include/ignite/impl/cluster/cluster_group_impl.h
index 3cfd700..d81e899 100644
--- a/modules/platforms/cpp/core/include/ignite/impl/cluster/cluster_group_impl.h
+++ b/modules/platforms/cpp/core/include/ignite/impl/cluster/cluster_group_impl.h
@@ -71,6 +71,21 @@ namespace ignite
                  */
                 SP_ComputeImpl GetCompute();
 
+                /**
+                 * Check if the Ignite grid is active.
+                 *
+                 * @return True if grid is active and false otherwise.
+                 */
+                bool IsActive();
+
+                /**
+                 * Change Ignite grid state to active or inactive.
+                 *
+                 * @param active If true start activation process. If false start
+                 *    deactivation process.
+                 */
+                void SetActive(bool active);
+
             private:
                 IGNITE_NO_COPY_ASSIGNMENT(ClusterGroupImpl);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/47fea40b/modules/platforms/cpp/core/include/ignite/impl/ignite_impl.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/impl/ignite_impl.h b/modules/platforms/cpp/core/include/ignite/impl/ignite_impl.h
index d1763c4..5461d1c 100644
--- a/modules/platforms/cpp/core/include/ignite/impl/ignite_impl.h
+++ b/modules/platforms/cpp/core/include/ignite/impl/ignite_impl.h
@@ -182,6 +182,27 @@ namespace ignite
              */
             SP_ComputeImpl GetCompute();
 
+            /**
+             * Check if the Ignite grid is active.
+             *
+             * @return True if grid is active and false otherwise.
+             */
+            bool IsActive()
+            {
+                return prjImpl.Get()->IsActive();
+            }
+
+            /**
+             * Change Ignite grid state to active or inactive.
+             *
+             * @param active If true start activation process. If false start
+             *    deactivation process.
+             */
+            void SetActive(bool active)
+            {
+                prjImpl.Get()->SetActive(active);
+            }
+
         private:
             /**
              * Get transactions internal call.
@@ -215,30 +236,7 @@ namespace ignite
             * @param err Error.
             * @param op Operation code.
             */
-            cache::CacheImpl* GetOrCreateCache(const char* name, IgniteError& err, int32_t op)
-            {
-                SharedPointer<InteropMemory> mem = env.Get()->AllocateMemory();
-                InteropMemory* mem0 = mem.Get();
-                InteropOutputStream out(mem0);
-                BinaryWriterImpl writer(&out, env.Get()->GetTypeManager());
-                BinaryRawWriter rawWriter(&writer);
-
-                rawWriter.WriteString(name);
-
-                out.Synchronize();
-
-                jobject cacheJavaRef = InStreamOutObject(op, *mem0, err);
-
-                if (!cacheJavaRef)
-                {
-                    return NULL;
-                }
-
-                char* name0 = common::CopyChars(name);
-
-                return new cache::CacheImpl(name0, env, cacheJavaRef);
-            }
-
+            cache::CacheImpl* GetOrCreateCache(const char* name, IgniteError& err, int32_t op);
         };
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/47fea40b/modules/platforms/cpp/core/src/ignite.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/ignite.cpp b/modules/platforms/cpp/core/src/ignite.cpp
index 9c42f1d..6eaae01 100644
--- a/modules/platforms/cpp/core/src/ignite.cpp
+++ b/modules/platforms/cpp/core/src/ignite.cpp
@@ -45,6 +45,16 @@ namespace ignite
         return impl.Get()->GetConfiguration();
     }
 
+    bool Ignite::IsActive()
+    {
+        return impl.Get()->IsActive();
+    }
+
+    void Ignite::SetActive(bool active)
+    {
+        impl.Get()->SetActive(active);
+    }
+
     transactions::Transactions Ignite::GetTransactions()
     {
         using ignite::common::concurrent::SharedPointer;

http://git-wip-us.apache.org/repos/asf/ignite/blob/47fea40b/modules/platforms/cpp/core/src/impl/cluster/cluster_group_impl.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/impl/cluster/cluster_group_impl.cpp b/modules/platforms/cpp/core/src/impl/cluster/cluster_group_impl.cpp
index c34e828..91f9d30 100644
--- a/modules/platforms/cpp/core/src/impl/cluster/cluster_group_impl.cpp
+++ b/modules/platforms/cpp/core/src/impl/cluster/cluster_group_impl.cpp
@@ -30,7 +30,11 @@ namespace ignite
             {
                 enum Type
                 {
-                    FOR_SERVERS = 23
+                    FOR_SERVERS = 23,
+
+                    SET_ACTIVE = 28,
+
+                    IS_ACTIVE = 29
                 };
             };
 
@@ -61,6 +65,26 @@ namespace ignite
                 return computeImpl;
             }
 
+            bool ClusterGroupImpl::IsActive()
+            {
+                IgniteError err;
+
+                int64_t res = OutInOpLong(Command::IS_ACTIVE, 0, err);
+
+                IgniteError::ThrowIfNeeded(err);
+
+                return res == 1;
+            }
+
+            void ClusterGroupImpl::SetActive(bool active)
+            {
+                IgniteError err;
+
+                int64_t res = OutInOpLong(Command::SET_ACTIVE, active ? 1 : 0, err);
+
+                IgniteError::ThrowIfNeeded(err);
+            }
+
             SP_ClusterGroupImpl ClusterGroupImpl::FromTarget(jobject javaRef)
             {
                 return SP_ClusterGroupImpl(new ClusterGroupImpl(GetEnvironmentPointer(), javaRef));

http://git-wip-us.apache.org/repos/asf/ignite/blob/47fea40b/modules/platforms/cpp/core/src/impl/ignite_impl.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/impl/ignite_impl.cpp b/modules/platforms/cpp/core/src/impl/ignite_impl.cpp
index f7ff185..f2132d4 100644
--- a/modules/platforms/cpp/core/src/impl/ignite_impl.cpp
+++ b/modules/platforms/cpp/core/src/impl/ignite_impl.cpp
@@ -91,5 +91,29 @@ namespace ignite
 
             return res;
         }
+
+        cache::CacheImpl* IgniteImpl::GetOrCreateCache(const char* name, IgniteError& err, int32_t op)
+        {
+            SharedPointer<InteropMemory> mem = env.Get()->AllocateMemory();
+            InteropMemory* mem0 = mem.Get();
+            InteropOutputStream out(mem0);
+            BinaryWriterImpl writer(&out, env.Get()->GetTypeManager());
+            BinaryRawWriter rawWriter(&writer);
+
+            rawWriter.WriteString(name);
+
+            out.Synchronize();
+
+            jobject cacheJavaRef = InStreamOutObject(op, *mem0, err);
+
+            if (!cacheJavaRef)
+            {
+                return NULL;
+            }
+
+            char* name0 = common::CopyChars(name);
+
+            return new cache::CacheImpl(name0, env, cacheJavaRef);
+        }
     }
 }