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:26:03 UTC
[20/47] ignite git commit: IGNITE-5771: Added Ignite::SetActive() for
C++
IGNITE-5771: Added Ignite::SetActive() for C++
(cherry picked from commit 47fea40)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/98a52406
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/98a52406
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/98a52406
Branch: refs/heads/master
Commit: 98a524067b2d2349c558256ee38efdf81e0ba7ff
Parents: a07d7b9
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 20:02:16 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 | 23 ++++++++++++++++-
modules/platforms/cpp/core/src/ignite.cpp | 10 ++++++++
.../src/impl/cluster/cluster_group_impl.cpp | 26 +++++++++++++++++++-
6 files changed, 100 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/98a52406/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/98a52406/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 b3b06f0..135f215 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/98a52406/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/98a52406/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 baddec4..ea192e2 100644
--- a/modules/platforms/cpp/core/include/ignite/impl/ignite_impl.h
+++ b/modules/platforms/cpp/core/include/ignite/impl/ignite_impl.h
@@ -82,7 +82,7 @@ namespace ignite
* @param name Cache name.
* @param err Error.
*/
- template<typename K, typename V>
+ template<typename K, typename V>
cache::CacheImpl* GetCache(const char* name, IgniteError& err)
{
ignite::jni::java::JniErrorInfo jniErr;
@@ -209,6 +209,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.
http://git-wip-us.apache.org/repos/asf/ignite/blob/98a52406/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/98a52406/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));