IGNITE-1336: Implemented callback extensions.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d907afc6 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d907afc6 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d907afc6 Branch: refs/heads/ignite-1093-2 Commit: d907afc669fb4b99e0f0011785415e39abe8b655 Parents: 1335580 Author: vozerov-gridgain <[email protected]> Authored: Mon Aug 31 17:41:54 2015 +0300 Committer: vozerov-gridgain <[email protected]> Committed: Mon Aug 31 17:41:54 2015 +0300 ---------------------------------------------------------------------- .../callback/PlatformCallbackGateway.java | 82 ++++++++++++++++++-- .../callback/PlatformCallbackUtils.java | 21 +++++ 2 files changed, 98 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/d907afc6/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackGateway.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackGateway.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackGateway.java index a8e7879..ff376d0 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackGateway.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackGateway.java @@ -790,7 +790,14 @@ public class PlatformCallbackGateway { * @throws org.apache.ignite.IgniteCheckedException In case of error. */ public long serviceInit(long memPtr) throws IgniteCheckedException { - return PlatformCallbackUtils.serviceInit(envPtr, memPtr); + enter(); + + try { + return PlatformCallbackUtils.serviceInit(envPtr, memPtr); + } + finally { + leave(); + } } /** @@ -801,7 +808,14 @@ public class PlatformCallbackGateway { * @throws org.apache.ignite.IgniteCheckedException In case of error. */ public void serviceExecute(long svcPtr, long memPtr) throws IgniteCheckedException { - PlatformCallbackUtils.serviceExecute(envPtr, svcPtr, memPtr); + enter(); + + try { + PlatformCallbackUtils.serviceExecute(envPtr, svcPtr, memPtr); + } + finally { + leave(); + } } /** @@ -812,7 +826,14 @@ public class PlatformCallbackGateway { * @throws org.apache.ignite.IgniteCheckedException In case of error. */ public void serviceCancel(long svcPtr, long memPtr) throws IgniteCheckedException { - PlatformCallbackUtils.serviceCancel(envPtr, svcPtr, memPtr); + enter(); + + try { + PlatformCallbackUtils.serviceCancel(envPtr, svcPtr, memPtr); + } + finally { + leave(); + } } /** @@ -824,7 +845,14 @@ public class PlatformCallbackGateway { * @throws org.apache.ignite.IgniteCheckedException In case of error. */ public void serviceInvokeMethod(long svcPtr, long outMemPtr, long inMemPtr) throws IgniteCheckedException { - PlatformCallbackUtils.serviceInvokeMethod(envPtr, svcPtr, outMemPtr, inMemPtr); + enter(); + + try { + PlatformCallbackUtils.serviceInvokeMethod(envPtr, svcPtr, outMemPtr, inMemPtr); + } + finally { + leave(); + } } /** @@ -833,7 +861,51 @@ public class PlatformCallbackGateway { * @param memPtr Stream pointer. */ public int clusterNodeFilterApply(long memPtr) { - return PlatformCallbackUtils.clusterNodeFilterApply(envPtr, memPtr); + enter(); + + try { + return PlatformCallbackUtils.clusterNodeFilterApply(envPtr, memPtr); + } + finally { + leave(); + } + } + + /** + * Extension callback accepting single long argument and returning long result. + * + * @param typ Operation type. + * @param arg1 Argument 1. + * @return Long result. + */ + public long extensionCallbackInLongOutLong(int typ, long arg1) { + enter(); + + try { + return PlatformCallbackUtils.extensionCallbackInLongOutLong(envPtr, typ, arg1); + } + finally { + leave(); + } + } + + /** + * Extension callback accepting two long arguments and returning long result. + * + * @param typ Operation type. + * @param arg1 Argument 1. + * @param arg2 Argument 2. + * @return Long result. + */ + public long extensionCallbackInLongLongOutLong(int typ, long arg1, long arg2) { + enter(); + + try { + return PlatformCallbackUtils.extensionCallbackInLongLongOutLong(envPtr, typ, arg1, arg2); + } + finally { + leave(); + } } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/d907afc6/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackUtils.java index 7e9587f..804012c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackUtils.java @@ -460,6 +460,27 @@ public class PlatformCallbackUtils { static native int clusterNodeFilterApply(long envPtr, long memPtr); /** + * Extension callback accepting single long argument and returning long result. + * + * @param envPtr Environment pointer. + * @param typ Operation type. + * @param arg1 Argument 1. + * @return Long result. + */ + static native long extensionCallbackInLongOutLong(long envPtr, int typ, long arg1); + + /** + * Extension callback accepting two long arguments and returning long result. + * + * @param envPtr Environment pointer. + * @param typ Operation type. + * @param arg1 Argument 1. + * @param arg2 Argument 2. + * @return Long result. + */ + static native long extensionCallbackInLongLongOutLong(long envPtr, int typ, long arg1, long arg2); + + /** * Private constructor. */ private PlatformCallbackUtils() {
