You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by pt...@apache.org on 2017/07/25 12:15:52 UTC
[1/3] ignite git commit: IGNITE-5770 Refactor PlatformProcessor to
PlatformTarget mechanism
Repository: ignite
Updated Branches:
refs/heads/master bd7d4077b -> bdc9e4b91
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs
index f76bbac..a38cf2f 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs
@@ -93,12 +93,9 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
try
{
- // OnStart receives the same InteropProcessor as here (just as another GlobalRef) and stores it.
- // Release current reference immediately.
- void* res = JNI.IgnitionStart(ctx.NativeContext, cfgPath0, gridName0, InteropFactoryId,
+ // OnStart receives InteropProcessor referece and stores it.
+ JNI.IgnitionStart(ctx.NativeContext, cfgPath0, gridName0, InteropFactoryId,
mem.SynchronizeOutput());
-
- JNI.Release(res);
}
finally
{
@@ -122,304 +119,6 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
}
}
- internal static void IgnitionStopAll(void* ctx, bool cancel)
- {
- JNI.IgnitionStopAll(ctx, cancel);
- }
-
- internal static void ProcessorReleaseStart(IUnmanagedTarget target)
- {
- JNI.ProcessorReleaseStart(target.Context, target.Target);
- }
-
- internal static IUnmanagedTarget ProcessorProjection(IUnmanagedTarget target)
- {
- void* res = JNI.ProcessorProjection(target.Context, target.Target);
-
- return target.ChangeTarget(res);
- }
-
- internal static IUnmanagedTarget ProcessorCache(IUnmanagedTarget target, string name)
- {
- sbyte* name0 = IgniteUtils.StringToUtf8Unmanaged(name);
-
- try
- {
- void* res = JNI.ProcessorCache(target.Context, target.Target, name0);
-
- return target.ChangeTarget(res);
- }
- finally
- {
- Marshal.FreeHGlobal(new IntPtr(name0));
- }
- }
-
- internal static IUnmanagedTarget ProcessorCreateCache(IUnmanagedTarget target, string name)
- {
- sbyte* name0 = IgniteUtils.StringToUtf8Unmanaged(name);
-
- try
- {
- void* res = JNI.ProcessorCreateCache(target.Context, target.Target, name0);
-
- return target.ChangeTarget(res);
- }
- finally
- {
- Marshal.FreeHGlobal(new IntPtr(name0));
- }
- }
-
- internal static IUnmanagedTarget ProcessorCreateCache(IUnmanagedTarget target, long memPtr)
- {
- void* res = JNI.ProcessorCreateCacheFromConfig(target.Context, target.Target, memPtr);
-
- return target.ChangeTarget(res);
- }
-
- internal static IUnmanagedTarget ProcessorGetOrCreateCache(IUnmanagedTarget target, string name)
- {
- sbyte* name0 = IgniteUtils.StringToUtf8Unmanaged(name);
-
- try
- {
- void* res = JNI.ProcessorGetOrCreateCache(target.Context, target.Target, name0);
-
- return target.ChangeTarget(res);
- }
- finally
- {
- Marshal.FreeHGlobal(new IntPtr(name0));
- }
- }
-
- internal static IUnmanagedTarget ProcessorGetOrCreateCache(IUnmanagedTarget target, long memPtr)
- {
- void* res = JNI.ProcessorGetOrCreateCacheFromConfig(target.Context, target.Target, memPtr);
-
- return target.ChangeTarget(res);
- }
-
- internal static IUnmanagedTarget ProcessorCreateNearCache(IUnmanagedTarget target, string name, long memPtr)
- {
- sbyte* name0 = IgniteUtils.StringToUtf8Unmanaged(name);
-
- try
- {
- void* res = JNI.ProcessorCreateNearCache(target.Context, target.Target, name0, memPtr);
-
- return target.ChangeTarget(res);
- }
- finally
- {
- Marshal.FreeHGlobal(new IntPtr(name0));
- }
- }
-
- internal static IUnmanagedTarget ProcessorGetOrCreateNearCache(IUnmanagedTarget target, string name, long memPtr)
- {
- sbyte* name0 = IgniteUtils.StringToUtf8Unmanaged(name);
-
- try
- {
- void* res = JNI.ProcessorGetOrCreateNearCache(target.Context, target.Target, name0, memPtr);
-
- return target.ChangeTarget(res);
- }
- finally
- {
- Marshal.FreeHGlobal(new IntPtr(name0));
- }
- }
-
- internal static void ProcessorDestroyCache(IUnmanagedTarget target, string name)
- {
- sbyte* name0 = IgniteUtils.StringToUtf8Unmanaged(name);
-
- try
- {
- JNI.ProcessorDestroyCache(target.Context, target.Target, name0);
- }
- finally
- {
- Marshal.FreeHGlobal(new IntPtr(name0));
- }
- }
-
- internal static IUnmanagedTarget ProcessorAffinity(IUnmanagedTarget target, string name)
- {
- sbyte* name0 = IgniteUtils.StringToUtf8Unmanaged(name);
-
- try
- {
- void* res = JNI.ProcessorAffinity(target.Context, target.Target, name0);
-
- return target.ChangeTarget(res);
- }
- finally
- {
- Marshal.FreeHGlobal(new IntPtr(name0));
- }
- }
-
- internal static IUnmanagedTarget ProcessorDataStreamer(IUnmanagedTarget target, string name, bool keepBinary)
- {
- sbyte* name0 = IgniteUtils.StringToUtf8Unmanaged(name);
-
- try
- {
- void* res = JNI.ProcessorDataStreamer(target.Context, target.Target, name0, keepBinary);
-
- return target.ChangeTarget(res);
- }
- finally
- {
- Marshal.FreeHGlobal(new IntPtr(name0));
- }
- }
-
- internal static IUnmanagedTarget ProcessorTransactions(IUnmanagedTarget target)
- {
- void* res = JNI.ProcessorTransactions(target.Context, target.Target);
-
- return target.ChangeTarget(res);
- }
-
- internal static IUnmanagedTarget ProcessorCompute(IUnmanagedTarget target, IUnmanagedTarget prj)
- {
- void* res = JNI.ProcessorCompute(target.Context, target.Target, prj.Target);
-
- return target.ChangeTarget(res);
- }
-
- internal static IUnmanagedTarget ProcessorMessage(IUnmanagedTarget target, IUnmanagedTarget prj)
- {
- void* res = JNI.ProcessorMessage(target.Context, target.Target, prj.Target);
-
- return target.ChangeTarget(res);
- }
-
- internal static IUnmanagedTarget ProcessorEvents(IUnmanagedTarget target, IUnmanagedTarget prj)
- {
- void* res = JNI.ProcessorEvents(target.Context, target.Target, prj.Target);
-
- return target.ChangeTarget(res);
- }
-
- internal static IUnmanagedTarget ProcessorServices(IUnmanagedTarget target, IUnmanagedTarget prj)
- {
- void* res = JNI.ProcessorServices(target.Context, target.Target, prj.Target);
-
- return target.ChangeTarget(res);
- }
-
- internal static IUnmanagedTarget ProcessorExtensions(IUnmanagedTarget target)
- {
- void* res = JNI.ProcessorExtensions(target.Context, target.Target);
-
- return target.ChangeTarget(res);
- }
-
- internal static IUnmanagedTarget ProcessorExtension(IUnmanagedTarget target, int id)
- {
- void* res = JNI.ProcessorExtension(target.Context, target.Target, id);
-
- return target.ChangeTarget(res);
- }
-
- internal static IUnmanagedTarget ProcessorAtomicLong(IUnmanagedTarget target, string name, long initialValue,
- bool create)
- {
- var name0 = IgniteUtils.StringToUtf8Unmanaged(name);
-
- try
- {
- var res = JNI.ProcessorAtomicLong(target.Context, target.Target, name0, initialValue, create);
-
- return res == null ? null : target.ChangeTarget(res);
- }
- finally
- {
- Marshal.FreeHGlobal(new IntPtr(name0));
- }
- }
-
- internal static IUnmanagedTarget ProcessorAtomicSequence(IUnmanagedTarget target, string name, long initialValue,
- bool create)
- {
- var name0 = IgniteUtils.StringToUtf8Unmanaged(name);
-
- try
- {
- var res = JNI.ProcessorAtomicSequence(target.Context, target.Target, name0, initialValue, create);
-
- return res == null ? null : target.ChangeTarget(res);
- }
- finally
- {
- Marshal.FreeHGlobal(new IntPtr(name0));
- }
- }
-
- internal static IUnmanagedTarget ProcessorAtomicReference(IUnmanagedTarget target, string name, long memPtr,
- bool create)
- {
- var name0 = IgniteUtils.StringToUtf8Unmanaged(name);
-
- try
- {
- var res = JNI.ProcessorAtomicReference(target.Context, target.Target, name0, memPtr, create);
-
- return res == null ? null : target.ChangeTarget(res);
- }
- finally
- {
- Marshal.FreeHGlobal(new IntPtr(name0));
- }
- }
-
- internal static void ProcessorGetIgniteConfiguration(IUnmanagedTarget target, long memPtr)
- {
- JNI.ProcessorGetIgniteConfiguration(target.Context, target.Target, memPtr);
- }
-
- internal static void ProcessorGetCacheNames(IUnmanagedTarget target, long memPtr)
- {
- JNI.ProcessorGetCacheNames(target.Context, target.Target, memPtr);
- }
-
- internal static bool ProcessorLoggerIsLevelEnabled(IUnmanagedTarget target, int level)
- {
- return JNI.ProcessorLoggerIsLevelEnabled(target.Context, target.Target, level);
- }
-
- internal static void ProcessorLoggerLog(IUnmanagedTarget target, int level, string message, string category,
- string errorInfo)
- {
- var message0 = IgniteUtils.StringToUtf8Unmanaged(message);
- var category0 = IgniteUtils.StringToUtf8Unmanaged(category);
- var errorInfo0 = IgniteUtils.StringToUtf8Unmanaged(errorInfo);
-
- try
- {
- JNI.ProcessorLoggerLog(target.Context, target.Target, level, message0, category0, errorInfo0);
- }
- finally
- {
- Marshal.FreeHGlobal(new IntPtr(message0));
- Marshal.FreeHGlobal(new IntPtr(category0));
- Marshal.FreeHGlobal(new IntPtr(errorInfo0));
- }
- }
-
- internal static IUnmanagedTarget ProcessorBinaryProcessor(IUnmanagedTarget target)
- {
- void* res = JNI.ProcessorBinaryProcessor(target.Context, target.Target);
-
- return target.ChangeTarget(res);
- }
-
#endregion
#region NATIVE METHODS: TARGET
@@ -443,6 +142,9 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
{
void* res = JNI.TargetInStreamOutObject(target.Context, target.Target, opType, inMemPtr);
+ if (res == null)
+ return null;
+
return target.ChangeTarget(res);
}
[2/3] ignite git commit: IGNITE-5770 Refactor PlatformProcessor to
PlatformTarget mechanism
Posted by pt...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/cpp/jni/src/exports.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/jni/src/exports.cpp b/modules/platforms/cpp/jni/src/exports.cpp
index 2aecd59..9b7defd 100644
--- a/modules/platforms/cpp/jni/src/exports.cpp
+++ b/modules/platforms/cpp/jni/src/exports.cpp
@@ -26,12 +26,8 @@ extern "C" {
return gcj::JniContext::Reallocate(memPtr, cap);
}
- void* IGNITE_CALL IgniteIgnitionStart(gcj::JniContext* ctx, char* cfgPath, char* name, int factoryId, long long dataPtr) {
- return ctx->IgnitionStart(cfgPath, name, factoryId, dataPtr);
- }
-
- void* IGNITE_CALL IgniteIgnitionInstance(gcj::JniContext* ctx, char* name) {
- return ctx->IgnitionInstance(name);
+ void IGNITE_CALL IgniteIgnitionStart(gcj::JniContext* ctx, char* cfgPath, char* name, int factoryId, long long dataPtr) {
+ ctx->IgnitionStart(cfgPath, name, factoryId, dataPtr);
}
long long IGNITE_CALL IgniteIgnitionEnvironmentPointer(gcj::JniContext* ctx, char* name) {
@@ -46,118 +42,10 @@ extern "C" {
return ctx->IgnitionStopAll(cancel);
}
- void IGNITE_CALL IgniteProcessorReleaseStart(gcj::JniContext* ctx, void* obj) {
- return ctx->ProcessorReleaseStart(static_cast<jobject>(obj));
- }
-
- void* IGNITE_CALL IgniteProcessorProjection(gcj::JniContext* ctx, void* obj) {
- return ctx->ProcessorProjection(static_cast<jobject>(obj));
- }
-
- void* IGNITE_CALL IgniteProcessorCache(gcj::JniContext* ctx, void* obj, char* name) {
- return ctx->ProcessorCache(static_cast<jobject>(obj), name);
- }
-
- void* IGNITE_CALL IgniteProcessorCreateCache(gcj::JniContext* ctx, void* obj, char* name) {
- return ctx->ProcessorCreateCache(static_cast<jobject>(obj), name);
- }
-
- void* IGNITE_CALL IgniteProcessorGetOrCreateCache(gcj::JniContext* ctx, void* obj, char* name) {
- return ctx->ProcessorGetOrCreateCache(static_cast<jobject>(obj), name);
- }
-
- void* IGNITE_CALL IgniteProcessorCreateCacheFromConfig(gcj::JniContext* ctx, void* obj, long long memPtr) {
- return ctx->ProcessorCreateCacheFromConfig(static_cast<jobject>(obj), memPtr);
- }
-
- void* IGNITE_CALL IgniteProcessorGetOrCreateCacheFromConfig(gcj::JniContext* ctx, void* obj, long long memPtr) {
- return ctx->ProcessorGetOrCreateCacheFromConfig(static_cast<jobject>(obj), memPtr);
- }
-
- void* IGNITE_CALL IgniteProcessorCreateNearCache(gcj::JniContext* ctx, void* obj, char* name, long long memPtr) {
- return ctx->ProcessorCreateNearCache(static_cast<jobject>(obj), name, memPtr);
- }
-
- void* IGNITE_CALL IgniteProcessorGetOrCreateNearCache(gcj::JniContext* ctx, void* obj, char* name, long long memPtr) {
- return ctx->ProcessorGetOrCreateNearCache(static_cast<jobject>(obj), name, memPtr);
- }
-
- void IGNITE_CALL IgniteProcessorDestroyCache(gcj::JniContext* ctx, void* obj, char* name) {
- ctx->ProcessorDestroyCache(static_cast<jobject>(obj), name);
- }
-
- void* IGNITE_CALL IgniteProcessorAffinity(gcj::JniContext* ctx, void* obj, char* name) {
- return ctx->ProcessorAffinity(static_cast<jobject>(obj), name);
- }
-
- void*IGNITE_CALL IgniteProcessorDataStreamer(gcj::JniContext* ctx, void* obj, char* name, bool keepPortable) {
- return ctx->ProcessorDataStreamer(static_cast<jobject>(obj), name, keepPortable);
- }
-
- void* IGNITE_CALL IgniteProcessorTransactions(gcj::JniContext* ctx, void* obj) {
- return ctx->ProcessorTransactions(static_cast<jobject>(obj));
- }
-
- void* IGNITE_CALL IgniteProcessorCompute(gcj::JniContext* ctx, void* obj, void* prj) {
- return ctx->ProcessorCompute(static_cast<jobject>(obj), static_cast<jobject>(prj));
- }
-
- void* IGNITE_CALL IgniteProcessorMessage(gcj::JniContext* ctx, void* obj, void* prj) {
- return ctx->ProcessorMessage(static_cast<jobject>(obj), static_cast<jobject>(prj));
- }
-
- void* IGNITE_CALL IgniteProcessorEvents(gcj::JniContext* ctx, void* obj, void* prj) {
- return ctx->ProcessorEvents(static_cast<jobject>(obj), static_cast<jobject>(prj));
- }
-
- void* IGNITE_CALL IgniteProcessorServices(gcj::JniContext* ctx, void* obj, void* prj) {
- return ctx->ProcessorServices(static_cast<jobject>(obj), static_cast<jobject>(prj));
- }
-
- void* IGNITE_CALL IgniteProcessorExtensions(gcj::JniContext* ctx, void* obj) {
- return ctx->ProcessorExtensions(static_cast<jobject>(obj));
- }
-
- void* IGNITE_CALL IgniteProcessorExtension(gcj::JniContext* ctx, void* obj, int id) {
- return ctx->ProcessorExtension(static_cast<jobject>(obj), id);
- }
-
- void* IGNITE_CALL IgniteProcessorAtomicLong(gcj::JniContext* ctx, void* obj, char* name, long long initVal, bool create) {
- return ctx->ProcessorAtomicLong(static_cast<jobject>(obj), name, initVal, create);
- }
-
- void* IGNITE_CALL IgniteProcessorAtomicSequence(gcj::JniContext* ctx, void* obj, char* name, long long initVal, bool create) {
- return ctx->ProcessorAtomicSequence(static_cast<jobject>(obj), name, initVal, create);
- }
-
- void* IGNITE_CALL IgniteProcessorAtomicReference(gcj::JniContext* ctx, void* obj, char* name, long long memPtr, bool create) {
- return ctx->ProcessorAtomicReference(static_cast<jobject>(obj), name, memPtr, create);
- }
-
- void IGNITE_CALL IgniteProcessorGetIgniteConfiguration(gcj::JniContext* ctx, void* obj, long long memPtr) {
- return ctx->ProcessorGetIgniteConfiguration(static_cast<jobject>(obj), memPtr);
- }
-
- void IGNITE_CALL IgniteProcessorGetCacheNames(gcj::JniContext* ctx, void* obj, long long memPtr) {
- return ctx->ProcessorGetCacheNames(static_cast<jobject>(obj), memPtr);
- }
-
long long IGNITE_CALL IgniteTargetInLongOutLong(gcj::JniContext* ctx, void* obj, int opType, long long val) {
return ctx->TargetInLongOutLong(static_cast<jobject>(obj), opType, val);
}
- bool IGNITE_CALL IgniteProcessorLoggerIsLevelEnabled(gcj::JniContext* ctx, void* obj, int level) {
- return ctx->ProcessorLoggerIsLevelEnabled(static_cast<jobject>(obj), level);
- }
-
- void IGNITE_CALL IgniteProcessorLoggerLog(gcj::JniContext* ctx, void* obj, int level, char* message, char* category, char* errorInfo) {
- ctx->ProcessorLoggerLog(static_cast<jobject>(obj), level, message, category, errorInfo);
- }
-
- void* IGNITE_CALL IgniteProcessorBinaryProcessor(gcj::JniContext* ctx, void* obj) {
- return ctx->ProcessorBinaryProcessor(static_cast<jobject>(obj));
- }
-
long long IGNITE_CALL IgniteTargetInStreamOutLong(gcj::JniContext* ctx, void* obj, int opType, long long memPtr) {
return ctx->TargetInStreamOutLong(static_cast<jobject>(obj), opType, memPtr);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/cpp/jni/src/java.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/jni/src/java.cpp b/modules/platforms/cpp/jni/src/java.cpp
index bc6af34..7eadec0 100644
--- a/modules/platforms/cpp/jni/src/java.cpp
+++ b/modules/platforms/cpp/jni/src/java.cpp
@@ -223,32 +223,6 @@ namespace ignite
const char* C_PLATFORM_PROCESSOR = "org/apache/ignite/internal/processors/platform/PlatformProcessor";
JniMethod M_PLATFORM_PROCESSOR_RELEASE_START = JniMethod("releaseStart", "()V", false);
- JniMethod M_PLATFORM_PROCESSOR_PROJECTION = JniMethod("projection", "()Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_CACHE = JniMethod("cache", "(Ljava/lang/String;)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_CREATE_CACHE = JniMethod("createCache", "(Ljava/lang/String;)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_GET_OR_CREATE_CACHE = JniMethod("getOrCreateCache", "(Ljava/lang/String;)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_CREATE_CACHE_FROM_CONFIG = JniMethod("createCacheFromConfig", "(J)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_GET_OR_CREATE_CACHE_FROM_CONFIG = JniMethod("getOrCreateCacheFromConfig", "(J)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_CREATE_NEAR_CACHE = JniMethod("createNearCache", "(Ljava/lang/String;J)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_GET_OR_CREATE_NEAR_CACHE = JniMethod("getOrCreateNearCache", "(Ljava/lang/String;J)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_DESTROY_CACHE = JniMethod("destroyCache", "(Ljava/lang/String;)V", false);
- JniMethod M_PLATFORM_PROCESSOR_AFFINITY = JniMethod("affinity", "(Ljava/lang/String;)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_DATA_STREAMER = JniMethod("dataStreamer", "(Ljava/lang/String;Z)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_TRANSACTIONS = JniMethod("transactions", "()Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_COMPUTE = JniMethod("compute", "(Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_MESSAGE = JniMethod("message", "(Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_EVENTS = JniMethod("events", "(Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_SERVICES = JniMethod("services", "(Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_EXTENSIONS = JniMethod("extensions", "()Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_EXTENSION = JniMethod("extension", "(I)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_ATOMIC_LONG = JniMethod("atomicLong", "(Ljava/lang/String;JZ)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_ATOMIC_SEQUENCE = JniMethod("atomicSequence", "(Ljava/lang/String;JZ)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_ATOMIC_REFERENCE = JniMethod("atomicReference", "(Ljava/lang/String;JZ)Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
- JniMethod M_PLATFORM_PROCESSOR_GET_IGNITE_CONFIGURATION = JniMethod("getIgniteConfiguration", "(J)V", false);
- JniMethod M_PLATFORM_PROCESSOR_GET_CACHE_NAMES = JniMethod("getCacheNames", "(J)V", false);
- JniMethod M_PLATFORM_PROCESSOR_LOGGER_IS_LEVEL_ENABLED = JniMethod("loggerIsLevelEnabled", "(I)Z", false);
- JniMethod M_PLATFORM_PROCESSOR_LOGGER_LOG = JniMethod("loggerLog", "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V", false);
- JniMethod M_PLATFORM_PROCESSOR_BINARY_PROCESSOR = JniMethod("binaryProcessor", "()Lorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;", false);
const char* C_PLATFORM_TARGET = "org/apache/ignite/internal/processors/platform/PlatformTargetProxy";
JniMethod M_PLATFORM_TARGET_IN_LONG_OUT_LONG = JniMethod("inLongOutLong", "(IJ)J", false);
@@ -262,86 +236,9 @@ namespace ignite
const char* C_PLATFORM_CALLBACK_UTILS = "org/apache/ignite/internal/processors/platform/callback/PlatformCallbackUtils";
- JniMethod M_PLATFORM_CALLBACK_UTILS_CACHE_STORE_CREATE = JniMethod("cacheStoreCreate", "(JJ)J", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_CACHE_STORE_INVOKE = JniMethod("cacheStoreInvoke", "(JJJ)I", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_CACHE_STORE_DESTROY = JniMethod("cacheStoreDestroy", "(JJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_CACHE_STORE_SESSION_CREATE = JniMethod("cacheStoreSessionCreate", "(JJ)J", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_CACHE_ENTRY_FILTER_CREATE = JniMethod("cacheEntryFilterCreate", "(JJ)J", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_CACHE_ENTRY_FILTER_APPLY = JniMethod("cacheEntryFilterApply", "(JJJ)I", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_CACHE_ENTRY_FILTER_DESTROY = JniMethod("cacheEntryFilterDestroy", "(JJ)V", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_CACHE_INVOKE = JniMethod("cacheInvoke", "(JJJ)V", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_COMPUTE_TASK_MAP = JniMethod("computeTaskMap", "(JJJJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_COMPUTE_TASK_JOB_RESULT = JniMethod("computeTaskJobResult", "(JJJJ)I", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_COMPUTE_TASK_REDUCE = JniMethod("computeTaskReduce", "(JJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_COMPUTE_TASK_COMPLETE = JniMethod("computeTaskComplete", "(JJJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_COMPUTE_JOB_SERIALIZE = JniMethod("computeJobSerialize", "(JJJ)I", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_COMPUTE_JOB_CREATE = JniMethod("computeJobCreate", "(JJ)J", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_COMPUTE_JOB_EXECUTE = JniMethod("computeJobExecute", "(JJIJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_COMPUTE_JOB_DESTROY = JniMethod("computeJobDestroy", "(JJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_COMPUTE_JOB_CANCEL = JniMethod("computeJobCancel", "(JJ)V", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_CONTINUOUS_QUERY_LSNR_APPLY = JniMethod("continuousQueryListenerApply", "(JJJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_CONTINUOUS_QUERY_FILTER_CREATE = JniMethod("continuousQueryFilterCreate", "(JJ)J", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_CONTINUOUS_QUERY_FILTER_EVAL = JniMethod("continuousQueryFilterApply", "(JJJ)I", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_CONTINUOUS_QUERY_FILTER_RELEASE = JniMethod("continuousQueryFilterRelease", "(JJ)V", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_DATA_STREAMER_TOPOLOGY_UPDATE = JniMethod("dataStreamerTopologyUpdate", "(JJJI)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_DATA_STREAMER_STREAM_RECEIVER_INVOKE = JniMethod("dataStreamerStreamReceiverInvoke", "(JJLorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;JZ)V", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_FUTURE_BYTE_RES = JniMethod("futureByteResult", "(JJI)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_FUTURE_BOOL_RES = JniMethod("futureBoolResult", "(JJI)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_FUTURE_SHORT_RES = JniMethod("futureShortResult", "(JJI)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_FUTURE_CHAR_RES = JniMethod("futureCharResult", "(JJI)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_FUTURE_INT_RES = JniMethod("futureIntResult", "(JJI)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_FUTURE_FLOAT_RES = JniMethod("futureFloatResult", "(JJF)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_FUTURE_LONG_RES = JniMethod("futureLongResult", "(JJJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_FUTURE_DOUBLE_RES = JniMethod("futureDoubleResult", "(JJD)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_FUTURE_OBJ_RES = JniMethod("futureObjectResult", "(JJJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_FUTURE_NULL_RES = JniMethod("futureNullResult", "(JJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_FUTURE_ERR = JniMethod("futureError", "(JJJ)V", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_LIFECYCLE_EVENT = JniMethod("lifecycleEvent", "(JJI)V", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_MESSAGING_FILTER_CREATE = JniMethod("messagingFilterCreate", "(JJ)J", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_MESSAGING_FILTER_APPLY = JniMethod("messagingFilterApply", "(JJJ)I", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_MESSAGING_FILTER_DESTROY = JniMethod("messagingFilterDestroy", "(JJ)V", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_EVENT_FILTER_CREATE = JniMethod("eventFilterCreate", "(JJ)J", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_EVENT_FILTER_APPLY = JniMethod("eventFilterApply", "(JJJ)I", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_EVENT_FILTER_DESTROY = JniMethod("eventFilterDestroy", "(JJ)V", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_SERVICE_INIT = JniMethod("serviceInit", "(JJ)J", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_SERVICE_EXECUTE = JniMethod("serviceExecute", "(JJJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_SERVICE_CANCEL = JniMethod("serviceCancel", "(JJJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_SERVICE_INVOKE_METHOD = JniMethod("serviceInvokeMethod", "(JJJJ)V", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_CLUSTER_NODE_FILTER_APPLY = JniMethod("clusterNodeFilterApply", "(JJ)I", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_NODE_INFO = JniMethod("nodeInfo", "(JJ)V", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_MEMORY_REALLOCATE = JniMethod("memoryReallocate", "(JJI)V", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_ON_START = JniMethod("onStart", "(JLjava/lang/Object;J)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_ON_STOP = JniMethod("onStop", "(J)V", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_EXTENSION_CALLBACK_IN_LONG_OUT_LONG = JniMethod("extensionCallbackInLongOutLong", "(JIJ)J", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_EXTENSION_CALLBACK_IN_LONG_LONG_OUT_LONG = JniMethod("extensionCallbackInLongLongOutLong", "(JIJJ)J", true);
-
- JniMethod M_PLATFORM_CALLBACK_UTILS_ON_CLIENT_DISCONNECTED = JniMethod("onClientDisconnected", "(J)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_ON_CLIENT_RECONNECTED = JniMethod("onClientReconnected", "(JZ)V", true);
-
JniMethod M_PLATFORM_CALLBACK_UTILS_LOGGER_LOG = JniMethod("loggerLog", "(JILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V", true);
JniMethod M_PLATFORM_CALLBACK_UTILS_LOGGER_IS_LEVEL_ENABLED = JniMethod("loggerIsLevelEnabled", "(JI)Z", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_INIT = JniMethod("affinityFunctionInit", "(JJLorg/apache/ignite/internal/processors/platform/PlatformTargetProxy;)J", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_PARTITION = JniMethod("affinityFunctionPartition", "(JJJ)I", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_ASSIGN_PARTITIONS = JniMethod("affinityFunctionAssignPartitions", "(JJJJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_REMOVE_NODE = JniMethod("affinityFunctionRemoveNode", "(JJJ)V", true);
- JniMethod M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_DESTROY = JniMethod("affinityFunctionDestroy", "(JJ)V", true);
-
JniMethod M_PLATFORM_CALLBACK_UTILS_CONSOLE_WRITE = JniMethod("consoleWrite", "(Ljava/lang/String;Z)V", true);
JniMethod M_PLATFORM_CALLBACK_UTILS_IN_LONG_OUT_LONG = JniMethod("inLongOutLong", "(JIJ)J", true);
@@ -353,7 +250,7 @@ namespace ignite
JniMethod M_PLATFORM_UTILS_GET_FULL_STACK_TRACE = JniMethod("getFullStackTrace", "(Ljava/lang/Throwable;)Ljava/lang/String;", true);
const char* C_PLATFORM_IGNITION = "org/apache/ignite/internal/processors/platform/PlatformIgnition";
- JniMethod M_PLATFORM_IGNITION_START = JniMethod("start", "(Ljava/lang/String;Ljava/lang/String;IJJ)Lorg/apache/ignite/internal/processors/platform/PlatformProcessor;", true);
+ JniMethod M_PLATFORM_IGNITION_START = JniMethod("start", "(Ljava/lang/String;Ljava/lang/String;IJJ)V", true);
JniMethod M_PLATFORM_IGNITION_INSTANCE = JniMethod("instance", "(Ljava/lang/String;)Lorg/apache/ignite/internal/processors/platform/PlatformProcessor;", true);
JniMethod M_PLATFORM_IGNITION_ENVIRONMENT_POINTER = JniMethod("environmentPointer", "(Ljava/lang/String;)J", true);
JniMethod M_PLATFORM_IGNITION_STOP = JniMethod("stop", "(Ljava/lang/String;Z)Z", true);
@@ -554,32 +451,6 @@ namespace ignite
c_PlatformProcessor = FindClass(env, C_PLATFORM_PROCESSOR);
m_PlatformProcessor_releaseStart = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_RELEASE_START);
- m_PlatformProcessor_cache = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_CACHE);
- m_PlatformProcessor_createCache = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_CREATE_CACHE);
- m_PlatformProcessor_getOrCreateCache = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_GET_OR_CREATE_CACHE);
- m_PlatformProcessor_createCacheFromConfig = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_CREATE_CACHE_FROM_CONFIG);
- m_PlatformProcessor_getOrCreateCacheFromConfig = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_GET_OR_CREATE_CACHE_FROM_CONFIG);
- m_PlatformProcessor_createNearCache = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_CREATE_NEAR_CACHE);
- m_PlatformProcessor_getOrCreateNearCache = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_GET_OR_CREATE_NEAR_CACHE);
- m_PlatformProcessor_destroyCache = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_DESTROY_CACHE);
- m_PlatformProcessor_affinity = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_AFFINITY);
- m_PlatformProcessor_dataStreamer = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_DATA_STREAMER);
- m_PlatformProcessor_transactions = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_TRANSACTIONS);
- m_PlatformProcessor_projection = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_PROJECTION);
- m_PlatformProcessor_compute = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_COMPUTE);
- m_PlatformProcessor_message = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_MESSAGE);
- m_PlatformProcessor_events = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_EVENTS);
- m_PlatformProcessor_services = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_SERVICES);
- m_PlatformProcessor_extensions = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_EXTENSIONS);
- m_PlatformProcessor_extension = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_EXTENSION);
- m_PlatformProcessor_atomicLong = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_ATOMIC_LONG);
- m_PlatformProcessor_atomicSequence = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_ATOMIC_SEQUENCE);
- m_PlatformProcessor_atomicReference = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_ATOMIC_REFERENCE);
- m_PlatformProcessor_getIgniteConfiguration = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_GET_IGNITE_CONFIGURATION);
- m_PlatformProcessor_getCacheNames = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_GET_CACHE_NAMES);
- m_PlatformProcessor_loggerIsLevelEnabled = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_LOGGER_IS_LEVEL_ENABLED);
- m_PlatformProcessor_loggerLog = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_LOGGER_LOG);
- m_PlatformProcessor_binaryProcessor = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_BINARY_PROCESSOR);
c_PlatformTarget = FindClass(env, C_PLATFORM_TARGET);
m_PlatformTarget_inLongOutLong = FindMethod(env, c_PlatformTarget, M_PLATFORM_TARGET_IN_LONG_OUT_LONG);
@@ -871,18 +742,18 @@ namespace ignite
}
}
- jobject JniContext::IgnitionStart(char* cfgPath, char* name, int factoryId, long long dataPtr) {
+ void JniContext::IgnitionStart(char* cfgPath, char* name, int factoryId, long long dataPtr) {
return IgnitionStart(cfgPath, name, factoryId, dataPtr, NULL);
}
- jobject JniContext::IgnitionStart(char* cfgPath, char* name, int factoryId, long long dataPtr, JniErrorInfo* errInfo)
+ void JniContext::IgnitionStart(char* cfgPath, char* name, int factoryId, long long dataPtr, JniErrorInfo* errInfo)
{
JNIEnv* env = Attach();
jstring cfgPath0 = env->NewStringUTF(cfgPath);
jstring name0 = env->NewStringUTF(name);
- jobject interop = env->CallStaticObjectMethod(
+ env->CallStaticVoidMethod(
jvm->GetMembers().c_PlatformIgnition,
jvm->GetMembers().m_PlatformIgnition_start,
cfgPath0,
@@ -893,30 +764,8 @@ namespace ignite
);
ExceptionCheck(env, errInfo);
-
- return LocalToGlobal(env, interop);
- }
-
-
- jobject JniContext::IgnitionInstance(char* name)
- {
- return IgnitionInstance(name, NULL);
- }
-
- jobject JniContext::IgnitionInstance(char* name, JniErrorInfo* errInfo)
- {
- JNIEnv* env = Attach();
-
- jstring name0 = env->NewStringUTF(name);
-
- jobject interop = env->CallStaticObjectMethod(jvm->GetMembers().c_PlatformIgnition,
- jvm->GetMembers().m_PlatformIgnition_instance, name0);
-
- ExceptionCheck(env, errInfo);
-
- return LocalToGlobal(env, interop);
}
-
+
long long JniContext::IgnitionEnvironmentPointer(char* name)
{
return IgnitionEnvironmentPointer(name, NULL);
@@ -970,318 +819,6 @@ namespace ignite
ExceptionCheck(env, errInfo);
}
- void JniContext::ProcessorReleaseStart(jobject obj) {
- JNIEnv* env = Attach();
-
- env->CallVoidMethod(obj, jvm->GetMembers().m_PlatformProcessor_releaseStart);
-
- ExceptionCheck(env);
- }
-
- jobject JniContext::ProcessorProjection(jobject obj, JniErrorInfo* errInfo) {
- JNIEnv* env = Attach();
-
- jobject prj = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_projection);
-
- ExceptionCheck(env, errInfo);
-
- return LocalToGlobal(env, prj);
- }
-
- jobject JniContext::ProcessorCache0(jobject obj, const char* name, jmethodID mthd, JniErrorInfo* errInfo)
- {
- JNIEnv* env = Attach();
-
- jstring name0 = name != NULL ? env->NewStringUTF(name) : NULL;
-
- jobject cache = env->CallObjectMethod(obj, mthd, name0);
-
- if (name0)
- env->DeleteLocalRef(name0);
-
- ExceptionCheck(env, errInfo);
-
- return LocalToGlobal(env, cache);
- }
-
- jobject JniContext::ProcessorCacheFromConfig0(jobject obj, long long memPtr, jmethodID mthd, JniErrorInfo* errInfo)
- {
- JNIEnv* env = Attach();
-
- jobject cache = env->CallObjectMethod(obj, mthd, memPtr);
-
- ExceptionCheck(env, errInfo);
-
- return LocalToGlobal(env, cache);
- }
-
- jobject JniContext::ProcessorCache(jobject obj, const char* name) {
- return ProcessorCache(obj, name, NULL);
- }
-
- jobject JniContext::ProcessorCache(jobject obj, const char* name, JniErrorInfo* errInfo) {
- return ProcessorCache0(obj, name, jvm->GetMembers().m_PlatformProcessor_cache, errInfo);
- }
-
- jobject JniContext::ProcessorCreateCache(jobject obj, const char* name) {
- return ProcessorCreateCache(obj, name, NULL);
- }
-
- jobject JniContext::ProcessorCreateCache(jobject obj, const char* name, JniErrorInfo* errInfo)
- {
- return ProcessorCache0(obj, name, jvm->GetMembers().m_PlatformProcessor_createCache, errInfo);
- }
-
- jobject JniContext::ProcessorGetOrCreateCache(jobject obj, const char* name) {
- return ProcessorGetOrCreateCache(obj, name, NULL);
- }
-
- jobject JniContext::ProcessorGetOrCreateCache(jobject obj, const char* name, JniErrorInfo* errInfo)
- {
- return ProcessorCache0(obj, name, jvm->GetMembers().m_PlatformProcessor_getOrCreateCache, errInfo);
- }
-
- void JniContext::ProcessorDestroyCache(jobject obj, const char* name) {
- ProcessorDestroyCache(obj, name, NULL);
- }
-
- void JniContext::ProcessorDestroyCache(jobject obj, const char* name, JniErrorInfo* errInfo)
- {
- JNIEnv* env = Attach();
-
- jstring name0 = name != NULL ? env->NewStringUTF(name) : NULL;
-
- env->CallVoidMethod(obj, jvm->GetMembers().m_PlatformProcessor_destroyCache, name0);
-
- if (name0)
- env->DeleteLocalRef(name0);
-
- ExceptionCheck(env, errInfo);
- }
-
- jobject JniContext::ProcessorCreateCacheFromConfig(jobject obj, long long memPtr) {
- return ProcessorCreateCacheFromConfig(obj, memPtr, NULL);
- }
-
- jobject JniContext::ProcessorCreateCacheFromConfig(jobject obj, long long memPtr, JniErrorInfo* errInfo)
- {
- return ProcessorCacheFromConfig0(obj, memPtr, jvm->GetMembers().m_PlatformProcessor_createCacheFromConfig, errInfo);
- }
-
- jobject JniContext::ProcessorGetOrCreateCacheFromConfig(jobject obj, long long memPtr) {
- return ProcessorGetOrCreateCacheFromConfig(obj, memPtr, NULL);
- }
-
- jobject JniContext::ProcessorGetOrCreateCacheFromConfig(jobject obj, long long memPtr, JniErrorInfo* errInfo)
- {
- return ProcessorCacheFromConfig0(obj, memPtr, jvm->GetMembers().m_PlatformProcessor_getOrCreateCacheFromConfig, errInfo);
- }
-
- jobject JniContext::ProcessorCreateNearCache(jobject obj, const char* name, long long memPtr)
- {
- return ProcessorGetOrCreateNearCache0(obj, name, memPtr, jvm->GetMembers().m_PlatformProcessor_createNearCache);
- }
-
- jobject JniContext::ProcessorGetOrCreateNearCache(jobject obj, const char* name, long long memPtr)
- {
- return ProcessorGetOrCreateNearCache0(obj, name, memPtr, jvm->GetMembers().m_PlatformProcessor_getOrCreateNearCache);
- }
-
- jobject JniContext::ProcessorGetOrCreateNearCache0(jobject obj, const char* name, long long memPtr, jmethodID methodID)
- {
- JNIEnv* env = Attach();
-
- jstring name0 = name != NULL ? env->NewStringUTF(name) : NULL;
-
- jobject cache = env->CallObjectMethod(obj, methodID, name0, memPtr);
-
- if (name0)
- env->DeleteLocalRef(name0);
-
- ExceptionCheck(env);
-
- return LocalToGlobal(env, cache);
- }
-
- jobject JniContext::ProcessorAffinity(jobject obj, const char* name) {
- JNIEnv* env = Attach();
-
- jstring name0 = name != NULL ? env->NewStringUTF(name) : NULL;
-
- jobject aff = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_affinity, name0);
-
- if (name0)
- env->DeleteLocalRef(name0);
-
- ExceptionCheck(env);
-
- return LocalToGlobal(env, aff);
- }
-
- jobject JniContext::ProcessorDataStreamer(jobject obj, const char* name, bool keepPortable) {
- JNIEnv* env = Attach();
-
- jstring name0 = name != NULL ? env->NewStringUTF(name) : NULL;
-
- jobject ldr = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_dataStreamer, name0,
- keepPortable);
-
- if (name0)
- env->DeleteLocalRef(name0);
-
- ExceptionCheck(env);
-
- return LocalToGlobal(env, ldr);
- }
-
- jobject JniContext::ProcessorTransactions(jobject obj, JniErrorInfo* errInfo) {
- JNIEnv* env = Attach();
-
- jobject tx = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_transactions);
-
- ExceptionCheck(env, errInfo);
-
- return LocalToGlobal(env, tx);
- }
-
- jobject JniContext::ProcessorCompute(jobject obj, jobject prj) {
- JNIEnv* env = Attach();
-
- jobject res = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_compute, prj);
-
- ExceptionCheck(env);
-
- return LocalToGlobal(env, res);
- }
-
- jobject JniContext::ProcessorCompute(jobject obj, jobject prj, JniErrorInfo* errInfo) {
- JNIEnv* env = Attach();
-
- jobject res = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_compute, prj);
-
- ExceptionCheck(env, errInfo);
-
- return LocalToGlobal(env, res);
- }
-
- jobject JniContext::ProcessorMessage(jobject obj, jobject prj) {
- JNIEnv* env = Attach();
-
- jobject res = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_message, prj);
-
- ExceptionCheck(env);
-
- return LocalToGlobal(env, res);
- }
-
- jobject JniContext::ProcessorEvents(jobject obj, jobject prj) {
- JNIEnv* env = Attach();
-
- jobject res = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_events, prj);
-
- ExceptionCheck(env);
-
- return LocalToGlobal(env, res);
- }
-
- jobject JniContext::ProcessorServices(jobject obj, jobject prj) {
- JNIEnv* env = Attach();
-
- jobject res = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_services, prj);
-
- ExceptionCheck(env);
-
- return LocalToGlobal(env, res);
- }
-
- jobject JniContext::ProcessorExtensions(jobject obj)
- {
- JNIEnv* env = Attach();
-
- jobject res = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_extensions);
-
- ExceptionCheck(env);
-
- return LocalToGlobal(env, res);
- }
-
- jobject JniContext::ProcessorExtension(jobject obj, int id)
- {
- JNIEnv* env = Attach();
-
- jobject res = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_extension, id);
-
- ExceptionCheck(env);
-
- return LocalToGlobal(env, res);
- }
-
- jobject JniContext::ProcessorAtomicLong(jobject obj, char* name, long long initVal, bool create)
- {
- JNIEnv* env = Attach();
-
- jstring name0 = name != NULL ? env->NewStringUTF(name) : NULL;
-
- jobject res = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_atomicLong, name0, initVal, create);
-
- if (name0)
- env->DeleteLocalRef(name0);
-
- ExceptionCheck(env);
-
- return LocalToGlobal(env, res);
- }
-
- jobject JniContext::ProcessorAtomicSequence(jobject obj, char* name, long long initVal, bool create)
- {
- JNIEnv* env = Attach();
-
- jstring name0 = name != NULL ? env->NewStringUTF(name) : NULL;
-
- jobject res = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_atomicSequence, name0, initVal, create);
-
- if (name0)
- env->DeleteLocalRef(name0);
-
- ExceptionCheck(env);
-
- return LocalToGlobal(env, res);
- }
-
- jobject JniContext::ProcessorAtomicReference(jobject obj, char* name, long long memPtr, bool create)
- {
- JNIEnv* env = Attach();
-
- jstring name0 = name != NULL ? env->NewStringUTF(name) : NULL;
-
- jobject res = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_atomicReference, name0, memPtr, create);
-
- if (name0)
- env->DeleteLocalRef(name0);
-
- ExceptionCheck(env);
-
- return LocalToGlobal(env, res);
- }
-
- void JniContext::ProcessorGetIgniteConfiguration(jobject obj, long long memPtr)
- {
- JNIEnv* env = Attach();
-
- env->CallVoidMethod(obj, jvm->GetMembers().m_PlatformProcessor_getIgniteConfiguration, memPtr);
-
- ExceptionCheck(env);
- }
-
- void JniContext::ProcessorGetCacheNames(jobject obj, long long memPtr)
- {
- JNIEnv* env = Attach();
-
- env->CallVoidMethod(obj, jvm->GetMembers().m_PlatformProcessor_getCacheNames, memPtr);
-
- ExceptionCheck(env);
- }
-
long long JniContext::TargetInLongOutLong(jobject obj, int opType, long long val, JniErrorInfo* err) {
JNIEnv* env = Attach();
@@ -1292,51 +829,6 @@ namespace ignite
return res;
}
- bool JniContext::ProcessorLoggerIsLevelEnabled(jobject obj, int level)
- {
- JNIEnv* env = Attach();
-
- jboolean res = env->CallBooleanMethod(obj, jvm->GetMembers().m_PlatformProcessor_loggerIsLevelEnabled, level);
-
- ExceptionCheck(env);
-
- return res != 0;
- }
-
- void JniContext::ProcessorLoggerLog(jobject obj, int level, char* message, char* category, char* errorInfo)
- {
- JNIEnv* env = Attach();
-
- jstring message0 = message != NULL ? env->NewStringUTF(message) : NULL;
- jstring category0 = category != NULL ? env->NewStringUTF(category) : NULL;
- jstring errorInfo0 = errorInfo != NULL ? env->NewStringUTF(errorInfo) : NULL;
-
-
- env->CallVoidMethod(obj, jvm->GetMembers().m_PlatformProcessor_loggerLog, level, message0, category0, errorInfo0);
-
- if (message0)
- env->DeleteLocalRef(message0);
-
- if (category0)
- env->DeleteLocalRef(category0);
-
- if (errorInfo0)
- env->DeleteLocalRef(errorInfo0);
-
- ExceptionCheck(env);
- }
-
- jobject JniContext::ProcessorBinaryProcessor(jobject obj)
- {
- JNIEnv* env = Attach();
-
- jobject res = env->CallObjectMethod(obj, jvm->GetMembers().m_PlatformProcessor_binaryProcessor);
-
- ExceptionCheck(env);
-
- return LocalToGlobal(env, res);
- }
-
long long JniContext::TargetInStreamOutLong(jobject obj, int opType, long long memPtr, JniErrorInfo* err) {
JNIEnv* env = Attach();
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs
index c5d056d..44ebef3 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs
@@ -253,7 +253,9 @@ namespace Apache.Ignite.Core
var javaLogger = log as JavaLogger;
if (javaLogger != null)
- javaLogger.SetProcessor(interopProc);
+ {
+ javaLogger.SetIgnite(node);
+ }
// 6. On-start callback (notify lifecycle components).
node.OnStart();
@@ -291,10 +293,14 @@ namespace Apache.Ignite.Core
}
finally
{
+ var ignite = _startup.Ignite;
+
_startup = null;
- if (interopProc != null)
- UU.ProcessorReleaseStart(interopProc);
+ if (ignite != null)
+ {
+ ignite.ProcessorReleaseStart();
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs
index b1bf5eb..e6b2408 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs
@@ -1166,7 +1166,7 @@ namespace Apache.Ignite.Core.Impl.Cache
{
if (loc)
{
- var target = DoOutOpObject((int) CacheOp.LocIterator, w => w.WriteInt(peekModes));
+ var target = DoOutOpObject((int) CacheOp.LocIterator, (IBinaryStream s) => s.WriteInt(peekModes));
return new CacheEnumerator<TK, TV>(target, Marshaller, _flagKeepBinary);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cluster/ClusterGroupImpl.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cluster/ClusterGroupImpl.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cluster/ClusterGroupImpl.cs
index 6e07b78..30afe57 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cluster/ClusterGroupImpl.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cluster/ClusterGroupImpl.cs
@@ -135,6 +135,18 @@ namespace Apache.Ignite.Core.Impl.Cluster
/** */
private const int OpGetPersistentStoreMetrics = 30;
+ /** */
+ private const int OpGetCompute = 31;
+
+ /** */
+ private const int OpGetMessaging = 32;
+
+ /** */
+ private const int OpGetEvents = 33;
+
+ /** */
+ private const int OpGetServices = 34;
+
/** Initial Ignite instance. */
private readonly Ignite _ignite;
@@ -147,17 +159,14 @@ namespace Apache.Ignite.Core.Impl.Cluster
/** Nodes for the given topology version. */
private volatile IList<IClusterNode> _nodes;
- /** Processor. */
- private readonly IUnmanagedTarget _proc;
-
/** Compute. */
- private readonly Lazy<Compute> _comp;
+ private readonly Lazy<ICompute> _comp;
/** Messaging. */
- private readonly Lazy<Messaging> _msg;
+ private readonly Lazy<IMessaging> _msg;
/** Events. */
- private readonly Lazy<Events> _events;
+ private readonly Lazy<IEvents> _events;
/** Services. */
private readonly Lazy<IServices> _services;
@@ -165,29 +174,20 @@ namespace Apache.Ignite.Core.Impl.Cluster
/// <summary>
/// Constructor.
/// </summary>
- /// <param name="proc">Processor.</param>
/// <param name="target">Target.</param>
- /// <param name="marsh">Marshaller.</param>
/// <param name="ignite">Grid.</param>
/// <param name="pred">Predicate.</param>
[SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily")]
- public ClusterGroupImpl(IUnmanagedTarget proc, IUnmanagedTarget target, Marshaller marsh,
- Ignite ignite, Func<IClusterNode, bool> pred)
- : base(target, marsh)
+ public ClusterGroupImpl(IUnmanagedTarget target, Ignite ignite, Func<IClusterNode, bool> pred)
+ : base(target, ignite.Marshaller)
{
- _proc = proc;
_ignite = ignite;
_pred = pred;
- _comp = new Lazy<Compute>(() =>
- new Compute(new ComputeImpl(UU.ProcessorCompute(proc, target), marsh, this, false)));
-
- _msg = new Lazy<Messaging>(() => new Messaging(UU.ProcessorMessage(proc, target), marsh, this));
-
- _events = new Lazy<Events>(() => new Events(UU.ProcessorEvents(proc, target), marsh, this));
-
- _services = new Lazy<IServices>(() =>
- new Services(UU.ProcessorServices(proc, target), marsh, this, false, false));
+ _comp = new Lazy<ICompute>(() => CreateCompute());
+ _msg = new Lazy<IMessaging>(() => CreateMessaging());
+ _events = new Lazy<IEvents>(() => CreateEvents());
+ _services = new Lazy<IServices>(() => CreateServices());
}
/** <inheritDoc /> */
@@ -202,6 +202,14 @@ namespace Apache.Ignite.Core.Impl.Cluster
return _comp.Value;
}
+ /// <summary>
+ /// Creates the compute.
+ /// </summary>
+ private ICompute CreateCompute()
+ {
+ return new Compute(new ComputeImpl(DoOutOpObject(OpGetCompute), Marshaller, this, false));
+ }
+
/** <inheritDoc /> */
public IClusterGroup ForNodes(IEnumerable<IClusterNode> nodes)
{
@@ -257,7 +265,7 @@ namespace Apache.Ignite.Core.Impl.Cluster
{
var newPred = _pred == null ? p : node => _pred(node) && p(node);
- return new ClusterGroupImpl(_proc, Target, Marshaller, _ignite, newPred);
+ return new ClusterGroupImpl(Target, _ignite, newPred);
}
/** <inheritDoc /> */
@@ -413,12 +421,28 @@ namespace Apache.Ignite.Core.Impl.Cluster
return _msg.Value;
}
+ /// <summary>
+ /// Creates the messaging.
+ /// </summary>
+ private IMessaging CreateMessaging()
+ {
+ return new Messaging(DoOutOpObject(OpGetMessaging), Marshaller, this);
+ }
+
/** <inheritDoc /> */
public IEvents GetEvents()
{
return _events.Value;
}
+ /// <summary>
+ /// Creates the events.
+ /// </summary>
+ private IEvents CreateEvents()
+ {
+ return new Events(DoOutOpObject(OpGetEvents), Marshaller, this);
+ }
+
/** <inheritDoc /> */
public IServices GetServices()
{
@@ -426,6 +450,14 @@ namespace Apache.Ignite.Core.Impl.Cluster
}
/// <summary>
+ /// Creates the services.
+ /// </summary>
+ private IServices CreateServices()
+ {
+ return new Services(DoOutOpObject(OpGetServices), Marshaller, this, false, false);
+ }
+
+ /// <summary>
/// Pings a remote node.
/// </summary>
/// <param name="nodeId">ID of a node to ping.</param>
@@ -635,7 +667,7 @@ namespace Apache.Ignite.Core.Impl.Cluster
/// <returns>New cluster group.</returns>
private IClusterGroup GetClusterGroup(IUnmanagedTarget prj)
{
- return new ClusterGroupImpl(_proc, prj, Marshaller, _ignite, _pred);
+ return new ClusterGroupImpl(prj, _ignite, _pred);
}
/// <summary>
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeImpl.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeImpl.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeImpl.cs
index 7a028cd..cace7b2 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeImpl.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeImpl.cs
@@ -186,10 +186,10 @@ namespace Apache.Ignite.Core.Impl.Compute
long ptr = Marshaller.Ignite.HandleRegistry.Allocate(holder);
- var futTarget = DoOutOpObject(OpExecNative, w =>
+ var futTarget = DoOutOpObject(OpExecNative, (IBinaryStream s) =>
{
- w.WriteLong(ptr);
- w.WriteLong(_prj.TopologyVersion);
+ s.WriteLong(ptr);
+ s.WriteLong(_prj.TopologyVersion);
});
var future = holder.Future;
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Datastream/DataStreamerImpl.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Datastream/DataStreamerImpl.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Datastream/DataStreamerImpl.cs
index b9e3030..96e58d4 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Datastream/DataStreamerImpl.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Datastream/DataStreamerImpl.cs
@@ -547,8 +547,7 @@ namespace Apache.Ignite.Core.Impl.Datastream
return result;
}
- return new DataStreamerImpl<TK1, TV1>(UU.ProcessorDataStreamer(Marshaller.Ignite.InteropProcessor,
- _cacheName, true), Marshaller, _cacheName, true);
+ return Marshaller.Ignite.GetDataStreamer<TK1, TV1>(_cacheName, true);
}
/** <inheritDoc /> */
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Datastream/StreamReceiverHolder.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Datastream/StreamReceiverHolder.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Datastream/StreamReceiverHolder.cs
index 953ddb6..c91334d 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Datastream/StreamReceiverHolder.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Datastream/StreamReceiverHolder.cs
@@ -138,7 +138,7 @@ namespace Apache.Ignite.Core.Impl.Datastream
for (var i = 0; i < size; i++)
entries.Add(new CacheEntry<TK, TV>(reader.ReadObject<TK>(), reader.ReadObject<TV>()));
- receiver.Receive(grid.Cache<TK, TV>(cache, keepBinary), entries);
+ receiver.Receive(grid.GetCache<TK, TV>(cache, keepBinary), entries);
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
index 205f6e2..715776e 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
@@ -42,6 +42,7 @@ namespace Apache.Ignite.Core.Impl
using Apache.Ignite.Core.Impl.Plugin;
using Apache.Ignite.Core.Impl.Transactions;
using Apache.Ignite.Core.Impl.Unmanaged;
+ using Apache.Ignite.Core.Interop;
using Apache.Ignite.Core.Lifecycle;
using Apache.Ignite.Core.Log;
using Apache.Ignite.Core.Messaging;
@@ -53,8 +54,37 @@ namespace Apache.Ignite.Core.Impl
/// <summary>
/// Native Ignite wrapper.
/// </summary>
- internal class Ignite : IIgnite, ICluster
+ internal class Ignite : PlatformTarget, IIgnite, ICluster
{
+ /// <summary>
+ /// Operation codes for PlatformProcessorImpl calls.
+ /// </summary>
+ private enum Op
+ {
+ GetCache = 1,
+ CreateCache = 2,
+ GetOrCreateCache = 3,
+ CreateCacheFromConfig = 4,
+ GetOrCreateCacheFromConfig = 5,
+ DestroyCache = 6,
+ GetAffinity = 7,
+ GetDataStreamer = 8,
+ GetTransactions = 9,
+ GetClusterGroup = 10,
+ GetExtension = 11,
+ GetAtomicLong = 12,
+ GetAtomicReference = 13,
+ GetAtomicSequence = 14,
+ GetIgniteConfiguration = 15,
+ GetCacheNames = 16,
+ CreateNearCache = 17,
+ GetOrCreateNearCache = 18,
+ LoggerIsLevelEnabled = 19,
+ LoggerLog = 20,
+ GetBinaryProcessor = 21,
+ ReleaseStart = 22
+ }
+
/** */
private readonly IgniteConfiguration _cfg;
@@ -109,7 +139,7 @@ namespace Apache.Ignite.Core.Impl
/// <param name="lifecycleHandlers">Lifecycle beans.</param>
/// <param name="cbs">Callbacks.</param>
public Ignite(IgniteConfiguration cfg, string name, IUnmanagedTarget proc, Marshaller marsh,
- IList<LifecycleHandlerHolder> lifecycleHandlers, UnmanagedCallbacks cbs)
+ IList<LifecycleHandlerHolder> lifecycleHandlers, UnmanagedCallbacks cbs) : base(proc, marsh)
{
Debug.Assert(cfg != null);
Debug.Assert(proc != null);
@@ -126,17 +156,17 @@ namespace Apache.Ignite.Core.Impl
marsh.Ignite = this;
- _prj = new ClusterGroupImpl(proc, UU.ProcessorProjection(proc), marsh, this, null);
+ _prj = new ClusterGroupImpl(DoOutOpObject((int) Op.GetClusterGroup), this, null);
_binary = new Binary.Binary(marsh);
- _binaryProc = new BinaryProcessor(UU.ProcessorBinaryProcessor(proc), marsh);
+ _binaryProc = new BinaryProcessor(DoOutOpObject((int) Op.GetBinaryProcessor), marsh);
cbs.Initialize(this);
// Grid is not completely started here, can't initialize interop transactions right away.
_transactions = new Lazy<TransactionsImpl>(
- () => new TransactionsImpl(UU.ProcessorTransactions(proc), marsh, GetLocalNode().Id));
+ () => new TransactionsImpl(DoOutOpObject((int) Op.GetTransactions), marsh, GetLocalNode().Id));
// Set reconnected task to completed state for convenience.
_clientReconnectTaskCompletionSource.SetResult(false);
@@ -207,7 +237,7 @@ namespace Apache.Ignite.Core.Impl
/** <inheritdoc /> */
public IClusterGroup ForNodes(IEnumerable<IClusterNode> nodes)
{
- return ((IClusterGroup) _prj).ForNodes(nodes);
+ return _prj.ForNodes(nodes);
}
/** <inheritdoc /> */
@@ -219,12 +249,6 @@ namespace Apache.Ignite.Core.Impl
/** <inheritdoc /> */
public IClusterGroup ForNodeIds(IEnumerable<Guid> ids)
{
- return ((IClusterGroup) _prj).ForNodeIds(ids);
- }
-
- /** <inheritdoc /> */
- public IClusterGroup ForNodeIds(ICollection<Guid> ids)
- {
return _prj.ForNodeIds(ids);
}
@@ -389,7 +413,8 @@ namespace Apache.Ignite.Core.Impl
{
IgniteArgumentCheck.NotNull(name, "name");
- return Cache<TK, TV>(UU.ProcessorCache(_proc, name));
+
+ return GetCache<TK, TV>(DoOutOpObject((int) Op.GetCache, w => w.WriteString(name)));
}
/** <inheritdoc /> */
@@ -397,7 +422,7 @@ namespace Apache.Ignite.Core.Impl
{
IgniteArgumentCheck.NotNull(name, "name");
- return Cache<TK, TV>(UU.ProcessorGetOrCreateCache(_proc, name));
+ return GetCache<TK, TV>(DoOutOpObject((int) Op.GetOrCreateCache, w => w.WriteString(name)));
}
/** <inheritdoc /> */
@@ -407,31 +432,10 @@ namespace Apache.Ignite.Core.Impl
}
/** <inheritdoc /> */
- public ICache<TK, TV> GetOrCreateCache<TK, TV>(CacheConfiguration configuration,
+ public ICache<TK, TV> GetOrCreateCache<TK, TV>(CacheConfiguration configuration,
NearCacheConfiguration nearConfiguration)
{
- IgniteArgumentCheck.NotNull(configuration, "configuration");
- IgniteArgumentCheck.NotNull(configuration.Name, "CacheConfiguration.Name");
- configuration.Validate(Logger);
-
- using (var stream = IgniteManager.Memory.Allocate().GetStream())
- {
- var writer = BinaryUtils.Marshaller.StartMarshal(stream);
-
- configuration.Write(writer);
-
- if (nearConfiguration != null)
- {
- writer.WriteBoolean(true);
- nearConfiguration.Write(writer);
- }
- else
- writer.WriteBoolean(false);
-
- stream.SynchronizeOutput();
-
- return Cache<TK, TV>(UU.ProcessorGetOrCreateCache(_proc, stream.MemoryPointer));
- }
+ return GetOrCreateCache<TK, TV>(configuration, nearConfiguration, Op.GetOrCreateCacheFromConfig);
}
/** <inheritdoc /> */
@@ -439,7 +443,9 @@ namespace Apache.Ignite.Core.Impl
{
IgniteArgumentCheck.NotNull(name, "name");
- return Cache<TK, TV>(UU.ProcessorCreateCache(_proc, name));
+ var cacheTarget = DoOutOpObject((int) Op.CreateCache, w => w.WriteString(name));
+
+ return GetCache<TK, TV>(cacheTarget);
}
/** <inheritdoc /> */
@@ -452,29 +458,37 @@ namespace Apache.Ignite.Core.Impl
public ICache<TK, TV> CreateCache<TK, TV>(CacheConfiguration configuration,
NearCacheConfiguration nearConfiguration)
{
+ return GetOrCreateCache<TK, TV>(configuration, nearConfiguration, Op.CreateCacheFromConfig);
+ }
+
+ /// <summary>
+ /// Gets or creates the cache.
+ /// </summary>
+ private ICache<TK, TV> GetOrCreateCache<TK, TV>(CacheConfiguration configuration,
+ NearCacheConfiguration nearConfiguration, Op op)
+ {
IgniteArgumentCheck.NotNull(configuration, "configuration");
IgniteArgumentCheck.NotNull(configuration.Name, "CacheConfiguration.Name");
configuration.Validate(Logger);
- using (var stream = IgniteManager.Memory.Allocate().GetStream())
+ var cacheTarget = DoOutOpObject((int) op, s =>
{
- // Use system marshaller: full footers, always unregistered mode.
- var writer = BinaryUtils.Marshaller.StartMarshal(stream);
+ var w = BinaryUtils.Marshaller.StartMarshal(s);
- configuration.Write(writer);
+ configuration.Write(w);
if (nearConfiguration != null)
{
- writer.WriteBoolean(true);
- nearConfiguration.Write(writer);
+ w.WriteBoolean(true);
+ nearConfiguration.Write(w);
}
else
- writer.WriteBoolean(false);
-
- stream.SynchronizeOutput();
+ {
+ w.WriteBoolean(false);
+ }
+ });
- return Cache<TK, TV>(UU.ProcessorCreateCache(_proc, stream.MemoryPointer));
- }
+ return GetCache<TK, TV>(cacheTarget);
}
/** <inheritdoc /> */
@@ -482,7 +496,7 @@ namespace Apache.Ignite.Core.Impl
{
IgniteArgumentCheck.NotNull(name, "name");
- UU.ProcessorDestroyCache(_proc, name);
+ DoOutOp((int) Op.DestroyCache, w => w.WriteString(name));
}
/// <summary>
@@ -493,7 +507,7 @@ namespace Apache.Ignite.Core.Impl
/// <returns>
/// New instance of cache wrapping specified native cache.
/// </returns>
- public ICache<TK, TV> Cache<TK, TV>(IUnmanagedTarget nativeCache, bool keepBinary = false)
+ public ICache<TK, TV> GetCache<TK, TV>(IUnmanagedTarget nativeCache, bool keepBinary = false)
{
return new CacheImpl<TK, TV>(this, nativeCache, _marsh, false, keepBinary, false, false);
}
@@ -541,8 +555,21 @@ namespace Apache.Ignite.Core.Impl
{
IgniteArgumentCheck.NotNull(cacheName, "cacheName");
- return new DataStreamerImpl<TK, TV>(UU.ProcessorDataStreamer(_proc, cacheName, false),
- _marsh, cacheName, false);
+ return GetDataStreamer<TK, TV>(cacheName, false);
+ }
+
+ /// <summary>
+ /// Gets the data streamer.
+ /// </summary>
+ internal IDataStreamer<TK, TV> GetDataStreamer<TK, TV>(string cacheName, bool keepBinary)
+ {
+ var streamerTarget = DoOutOpObject((int) Op.GetDataStreamer, w =>
+ {
+ w.WriteString(cacheName);
+ w.WriteBoolean(keepBinary);
+ });
+
+ return new DataStreamerImpl<TK, TV>(streamerTarget, _marsh, cacheName, keepBinary);
}
/** <inheritdoc /> */
@@ -556,11 +583,12 @@ namespace Apache.Ignite.Core.Impl
{
IgniteArgumentCheck.NotNull(cacheName, "cacheName");
- return new CacheAffinityImpl(UU.ProcessorAffinity(_proc, cacheName), _marsh, false, this);
+ var aff = DoOutOpObject((int) Op.GetAffinity, w => w.WriteString(cacheName));
+
+ return new CacheAffinityImpl(aff, _marsh, false, this);
}
/** <inheritdoc /> */
-
public ITransactions GetTransactions()
{
return _transactions.Value;
@@ -589,7 +617,12 @@ namespace Apache.Ignite.Core.Impl
{
IgniteArgumentCheck.NotNullOrEmpty(name, "name");
- var nativeLong = UU.ProcessorAtomicLong(_proc, name, initialValue, create);
+ var nativeLong = DoOutOpObject((int) Op.GetAtomicLong, w =>
+ {
+ w.WriteString(name);
+ w.WriteLong(initialValue);
+ w.WriteBoolean(create);
+ });
if (nativeLong == null)
return null;
@@ -602,7 +635,12 @@ namespace Apache.Ignite.Core.Impl
{
IgniteArgumentCheck.NotNullOrEmpty(name, "name");
- var nativeSeq = UU.ProcessorAtomicSequence(_proc, name, initialValue, create);
+ var nativeSeq = DoOutOpObject((int) Op.GetAtomicSequence, w =>
+ {
+ w.WriteString(name);
+ w.WriteLong(initialValue);
+ w.WriteBoolean(create);
+ });
if (nativeSeq == null)
return null;
@@ -615,81 +653,47 @@ namespace Apache.Ignite.Core.Impl
{
IgniteArgumentCheck.NotNullOrEmpty(name, "name");
- var refTarget = GetAtomicReferenceUnmanaged(name, initialValue, create);
-
- return refTarget == null ? null : new AtomicReference<T>(refTarget, Marshaller, name);
- }
-
- /// <summary>
- /// Gets the unmanaged atomic reference.
- /// </summary>
- /// <param name="name">The name.</param>
- /// <param name="initialValue">The initial value.</param>
- /// <param name="create">Create flag.</param>
- /// <returns>Unmanaged atomic reference, or null.</returns>
- private IUnmanagedTarget GetAtomicReferenceUnmanaged<T>(string name, T initialValue, bool create)
- {
- IgniteArgumentCheck.NotNullOrEmpty(name, "name");
-
- // Do not allocate memory when default is not used.
- if (!create)
- return UU.ProcessorAtomicReference(_proc, name, 0, false);
-
- using (var stream = IgniteManager.Memory.Allocate().GetStream())
+ var refTarget = DoOutOpObject((int) Op.GetAtomicReference, w =>
{
- var writer = Marshaller.StartMarshal(stream);
-
- writer.Write(initialValue);
-
- Marshaller.FinishMarshal(writer);
+ w.WriteString(name);
+ w.WriteObject(initialValue);
+ w.WriteBoolean(create);
+ });
- var memPtr = stream.SynchronizeOutput();
-
- return UU.ProcessorAtomicReference(_proc, name, memPtr, true);
- }
+ return refTarget == null ? null : new AtomicReference<T>(refTarget, Marshaller, name);
}
/** <inheritdoc /> */
public IgniteConfiguration GetConfiguration()
{
- using (var stream = IgniteManager.Memory.Allocate(1024).GetStream())
- {
- UU.ProcessorGetIgniteConfiguration(_proc, stream.MemoryPointer);
-
- stream.SynchronizeInput();
-
- return new IgniteConfiguration(BinaryUtils.Marshaller.StartUnmarshal(stream), _cfg);
- }
+ return DoInOp((int) Op.GetIgniteConfiguration,
+ s => new IgniteConfiguration(BinaryUtils.Marshaller.StartUnmarshal(s), _cfg));
}
/** <inheritdoc /> */
public ICache<TK, TV> CreateNearCache<TK, TV>(string name, NearCacheConfiguration configuration)
{
- return GetOrCreateNearCache0<TK, TV>(name, configuration, UU.ProcessorCreateNearCache);
+ return GetOrCreateNearCache0<TK, TV>(name, configuration, Op.CreateNearCache);
}
/** <inheritdoc /> */
public ICache<TK, TV> GetOrCreateNearCache<TK, TV>(string name, NearCacheConfiguration configuration)
{
- return GetOrCreateNearCache0<TK, TV>(name, configuration, UU.ProcessorGetOrCreateNearCache);
+ return GetOrCreateNearCache0<TK, TV>(name, configuration, Op.GetOrCreateNearCache);
}
/** <inheritdoc /> */
public ICollection<string> GetCacheNames()
{
- using (var stream = IgniteManager.Memory.Allocate(1024).GetStream())
+ return OutStream((int) Op.GetCacheNames, r =>
{
- UU.ProcessorGetCacheNames(_proc, stream.MemoryPointer);
- stream.SynchronizeInput();
-
- var reader = _marsh.StartUnmarshal(stream);
- var res = new string[stream.ReadInt()];
+ var res = new string[r.ReadInt()];
- for (int i = 0; i < res.Length; i++)
- res[i] = reader.ReadString();
+ for (var i = 0; i < res.Length; i++)
+ res[i] = r.ReadString();
- return res;
- }
+ return (ICollection<string>) res;
+ });
}
/** <inheritdoc /> */
@@ -768,20 +772,17 @@ namespace Apache.Ignite.Core.Impl
/// Gets or creates near cache.
/// </summary>
private ICache<TK, TV> GetOrCreateNearCache0<TK, TV>(string name, NearCacheConfiguration configuration,
- Func<IUnmanagedTarget, string, long, IUnmanagedTarget> func)
+ Op op)
{
IgniteArgumentCheck.NotNull(configuration, "configuration");
- using (var stream = IgniteManager.Memory.Allocate().GetStream())
+ var cacheTarget = DoOutOpObject((int) op, w =>
{
- var writer = BinaryUtils.Marshaller.StartMarshal(stream);
+ w.WriteString(name);
+ configuration.Write(w);
+ });
- configuration.Write(writer);
-
- stream.SynchronizeOutput();
-
- return Cache<TK, TV>(func(_proc, name, stream.MemoryPointer));
- }
+ return GetCache<TK, TV>(cacheTarget);
}
/// <summary>
@@ -794,14 +795,6 @@ namespace Apache.Ignite.Core.Impl
}
/// <summary>
- /// Marshaller.
- /// </summary>
- internal Marshaller Marshaller
- {
- get { return _marsh; }
- }
-
- /// <summary>
/// Gets the binary processor.
/// </summary>
internal BinaryProcessor BinaryProcessor
@@ -892,5 +885,43 @@ namespace Apache.Ignite.Core.Impl
{
get { return _pluginProcessor; }
}
+
+ /// <summary>
+ /// Notify processor that it is safe to use.
+ /// </summary>
+ internal void ProcessorReleaseStart()
+ {
+ InLongOutLong((int) Op.ReleaseStart, 0);
+ }
+
+ /// <summary>
+ /// Checks whether log level is enabled in Java logger.
+ /// </summary>
+ internal bool LoggerIsLevelEnabled(LogLevel logLevel)
+ {
+ return InLongOutLong((int) Op.LoggerIsLevelEnabled, (long) logLevel) == True;
+ }
+
+ /// <summary>
+ /// Logs to the Java logger.
+ /// </summary>
+ internal void LoggerLog(LogLevel level, string msg, string category, string err)
+ {
+ InStreamOutLong((int) Op.LoggerLog, w =>
+ {
+ w.WriteInt((int) level);
+ w.WriteString(msg);
+ w.WriteString(category);
+ w.WriteString(err);
+ });
+ }
+
+ /// <summary>
+ /// Gets the platform plugin extension.
+ /// </summary>
+ internal IPlatformTarget GetExtension(int id)
+ {
+ return InStreamOutObject((int) Op.GetExtension, w => w.WriteInt(id));
+ }
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Log/JavaLogger.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Log/JavaLogger.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Log/JavaLogger.cs
index 23e7a37..2e47fe8 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Log/JavaLogger.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Log/JavaLogger.cs
@@ -21,7 +21,6 @@ namespace Apache.Ignite.Core.Impl.Log
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
- using Apache.Ignite.Core.Impl.Unmanaged;
using Apache.Ignite.Core.Log;
/// <summary>
@@ -30,7 +29,7 @@ namespace Apache.Ignite.Core.Impl.Log
internal class JavaLogger : ILogger
{
/** */
- private IUnmanagedTarget _proc;
+ private Ignite _ignite;
/** */
private readonly List<LogLevel> _enabledLevels = new List<LogLevel>(5);
@@ -45,19 +44,19 @@ namespace Apache.Ignite.Core.Impl.Log
/// <summary>
/// Sets the processor.
/// </summary>
- /// <param name="proc">The proc.</param>
- public void SetProcessor(IUnmanagedTarget proc)
+ /// <param name="ignite">The proc.</param>
+ public void SetIgnite(Ignite ignite)
{
- Debug.Assert(proc != null);
+ Debug.Assert(ignite != null);
lock (_syncRoot)
{
- _proc = proc;
+ _ignite = ignite;
// Preload enabled levels.
_enabledLevels.AddRange(
- new[] { LogLevel.Trace, LogLevel.Debug, LogLevel.Info, LogLevel.Warn, LogLevel.Error }
- .Where(x => UnmanagedUtils.ProcessorLoggerIsLevelEnabled(proc, (int)x)));
+ new[] {LogLevel.Trace, LogLevel.Debug, LogLevel.Info, LogLevel.Warn, LogLevel.Error}
+ .Where(x => ignite.LoggerIsLevelEnabled(x)));
foreach (var log in _pendingLogs)
{
@@ -82,7 +81,7 @@ namespace Apache.Ignite.Core.Impl.Log
var msg = args == null ? message : string.Format(formatProvider, message, args);
var err = ex != null ? ex.ToString() : null;
- if (_proc != null)
+ if (_ignite != null)
Log(level, msg, category, err);
else
_pendingLogs.Add(Tuple.Create(level, msg, category, err));
@@ -94,7 +93,7 @@ namespace Apache.Ignite.Core.Impl.Log
{
lock (_syncRoot)
{
- return _proc == null || _enabledLevels.Contains(level);
+ return _ignite == null || _enabledLevels.Contains(level);
}
}
@@ -104,7 +103,9 @@ namespace Apache.Ignite.Core.Impl.Log
private void Log(LogLevel level, string msg, string category, string err)
{
if (IsEnabled(level))
- UnmanagedUtils.ProcessorLoggerLog(_proc, (int)level, msg, category, err);
+ {
+ _ignite.LoggerLog(level, msg, category, err);
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/dotnet/Apache.Ignite.Core/Impl/PlatformTarget.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/PlatformTarget.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/PlatformTarget.cs
index 8dd8eaf..474af0e 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/PlatformTarget.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/PlatformTarget.cs
@@ -300,7 +300,7 @@ namespace Apache.Ignite.Core.Impl
/// </summary>
/// <param name="type">Operation type.</param>
/// <param name="action">Action to be performed on the stream.</param>
- /// <returns></returns>
+ /// <returns>Resulting object.</returns>
protected IUnmanagedTarget DoOutOpObject(int type, Action<BinaryWriter> action)
{
using (var stream = IgniteManager.Memory.Allocate().GetStream())
@@ -319,6 +319,22 @@ namespace Apache.Ignite.Core.Impl
/// Perform out operation.
/// </summary>
/// <param name="type">Operation type.</param>
+ /// <param name="action">Action to be performed on the stream.</param>
+ /// <returns>Resulting object.</returns>
+ protected IUnmanagedTarget DoOutOpObject(int type, Action<IBinaryStream> action)
+ {
+ using (var stream = IgniteManager.Memory.Allocate().GetStream())
+ {
+ action(stream);
+
+ return UU.TargetInStreamOutObject(_target, type, stream.SynchronizeOutput());
+ }
+ }
+
+ /// <summary>
+ /// Perform out operation.
+ /// </summary>
+ /// <param name="type">Operation type.</param>
/// <returns>Resulting object.</returns>
protected IUnmanagedTarget DoOutOpObject(int type)
{
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Plugin/PluginContext.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Plugin/PluginContext.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Plugin/PluginContext.cs
index cc20cb3..eac7556 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Plugin/PluginContext.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Plugin/PluginContext.cs
@@ -20,7 +20,6 @@ namespace Apache.Ignite.Core.Impl.Plugin
using Apache.Ignite.Core.Common;
using Apache.Ignite.Core.Impl.Common;
using Apache.Ignite.Core.Impl.Resource;
- using Apache.Ignite.Core.Impl.Unmanaged;
using Apache.Ignite.Core.Interop;
using Apache.Ignite.Core.Plugin;
@@ -65,11 +64,7 @@ namespace Apache.Ignite.Core.Impl.Plugin
/** <inheritdoc /> */
public IPlatformTarget GetExtension(int id)
{
- var ignite = _pluginProcessor.Ignite;
-
- var ext = UnmanagedUtils.ProcessorExtension(ignite.InteropProcessor, id);
-
- return new PlatformTarget(ext, ignite.Marshaller);
+ return _pluginProcessor.Ignite.GetExtension(id);
}
/** <inheritdoc /> */
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs
index 289589f..1720a79 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs
@@ -30,105 +30,16 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
public static extern int Reallocate(long memPtr, int cap);
[DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteIgnitionStart")]
- public static extern void* IgnitionStart(void* ctx, sbyte* cfgPath, sbyte* gridName, int factoryId,
+ public static extern void IgnitionStart(void* ctx, sbyte* cfgPath, sbyte* gridName, int factoryId,
long dataPtr);
[DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteIgnitionStop")]
[return: MarshalAs(UnmanagedType.U1)]
public static extern bool IgnitionStop(void* ctx, sbyte* gridName, [MarshalAs(UnmanagedType.U1)] bool cancel);
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteIgnitionStopAll")]
- public static extern void IgnitionStopAll(void* ctx, [MarshalAs(UnmanagedType.U1)] bool cancel);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorReleaseStart")]
- public static extern void ProcessorReleaseStart(void* ctx, void* obj);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorProjection")]
- public static extern void* ProcessorProjection(void* ctx, void* obj);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorCache")]
- public static extern void* ProcessorCache(void* ctx, void* obj, sbyte* name);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorCreateCache")]
- public static extern void* ProcessorCreateCache(void* ctx, void* obj, sbyte* name);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorCreateCacheFromConfig")]
- public static extern void* ProcessorCreateCacheFromConfig(void* ctx, void* obj, long memPtr);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorGetOrCreateCache")]
- public static extern void* ProcessorGetOrCreateCache(void* ctx, void* obj, sbyte* name);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorGetOrCreateCacheFromConfig")]
- public static extern void* ProcessorGetOrCreateCacheFromConfig(void* ctx, void* obj, long memPtr);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorCreateNearCache")]
- public static extern void* ProcessorCreateNearCache(void* ctx, void* obj, sbyte* name, long memPtr);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorGetOrCreateNearCache")]
- public static extern void* ProcessorGetOrCreateNearCache(void* ctx, void* obj, sbyte* name, long memPtr);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorDestroyCache")]
- public static extern void ProcessorDestroyCache(void* ctx, void* obj, sbyte* name);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorAffinity")]
- public static extern void* ProcessorAffinity(void* ctx, void* obj, sbyte* name);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorDataStreamer")]
- public static extern void* ProcessorDataStreamer(void* ctx, void* obj, sbyte* name,
- [MarshalAs(UnmanagedType.U1)] bool keepBinary);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorTransactions")]
- public static extern void* ProcessorTransactions(void* ctx, void* obj);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorCompute")]
- public static extern void* ProcessorCompute(void* ctx, void* obj, void* prj);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorMessage")]
- public static extern void* ProcessorMessage(void* ctx, void* obj, void* prj);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorEvents")]
- public static extern void* ProcessorEvents(void* ctx, void* obj, void* prj);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorServices")]
- public static extern void* ProcessorServices(void* ctx, void* obj, void* prj);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorExtensions")]
- public static extern void* ProcessorExtensions(void* ctx, void* obj);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorExtension")]
- public static extern void* ProcessorExtension(void* ctx, void* obj, int id);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorAtomicLong")]
- public static extern void* ProcessorAtomicLong(void* ctx, void* obj, sbyte* name, long initVal,
- [MarshalAs(UnmanagedType.U1)] bool create);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorAtomicSequence")]
- public static extern void* ProcessorAtomicSequence(void* ctx, void* obj, sbyte* name, long initVal,
- [MarshalAs(UnmanagedType.U1)] bool create);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorAtomicReference")]
- public static extern void* ProcessorAtomicReference(void* ctx, void* obj, sbyte* name, long memPtr,
- [MarshalAs(UnmanagedType.U1)] bool create);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorGetIgniteConfiguration")]
- public static extern void ProcessorGetIgniteConfiguration(void* ctx, void* obj, long memPtr);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorGetCacheNames")]
- public static extern void ProcessorGetCacheNames(void* ctx, void* obj, long memPtr);
-
[DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTargetInLongOutLong")]
public static extern long TargetInLongOutLong(void* ctx, void* target, int opType, long val);
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorLoggerIsLevelEnabled")]
- [return: MarshalAs(UnmanagedType.U1)]
- public static extern bool ProcessorLoggerIsLevelEnabled(void* ctx, void* obj, int level);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorLoggerLog")]
- public static extern void ProcessorLoggerLog(void* ctx, void* obj, int level, sbyte* messsage, sbyte* category, sbyte* errorInfo);
-
- [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorBinaryProcessor")]
- public static extern void* ProcessorBinaryProcessor(void* ctx, void* obj);
-
[DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTargetInStreamOutLong")]
public static extern long TargetInStreamOutLong(void* ctx, void* target, int opType, long memPtr);
[3/3] ignite git commit: IGNITE-5770 Refactor PlatformProcessor to
PlatformTarget mechanism
Posted by pt...@apache.org.
IGNITE-5770 Refactor PlatformProcessor to PlatformTarget mechanism
This closes #2336
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/bdc9e4b9
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/bdc9e4b9
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/bdc9e4b9
Branch: refs/heads/master
Commit: bdc9e4b91403595c496a5fa4aca70228665feaaa
Parents: bd7d407
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Tue Jul 25 15:15:43 2017 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Tue Jul 25 15:15:43 2017 +0300
----------------------------------------------------------------------
.../platform/PlatformAbstractTarget.java | 6 +-
.../processors/platform/PlatformIgnition.java | 5 +-
.../platform/PlatformNoopProcessor.java | 132 -----
.../processors/platform/PlatformProcessor.java | 216 --------
.../platform/PlatformProcessorImpl.java | 554 +++++++++++--------
.../platform/cluster/PlatformClusterGroup.java | 29 +
.../datastructures/PlatformAtomicReference.java | 13 +-
.../platforms/cpp/core/include/ignite/ignite.h | 6 +-
.../include/ignite/impl/compute/compute_impl.h | 5 +-
.../cpp/core/include/ignite/impl/ignite_impl.h | 112 ++--
.../ignite/impl/interop/interop_target.h | 16 +-
modules/platforms/cpp/core/src/ignition.cpp | 23 +-
.../cpp/core/src/impl/ignite_environment.cpp | 37 +-
.../platforms/cpp/core/src/impl/ignite_impl.cpp | 25 +-
.../core/src/impl/interop/interop_target.cpp | 18 +-
.../cpp/jni/include/ignite/jni/exports.h | 31 +-
.../platforms/cpp/jni/include/ignite/jni/java.h | 70 +--
modules/platforms/cpp/jni/project/vs/module.def | 30 +-
modules/platforms/cpp/jni/src/exports.cpp | 116 +---
modules/platforms/cpp/jni/src/java.cpp | 518 +----------------
.../dotnet/Apache.Ignite.Core/Ignition.cs | 12 +-
.../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs | 2 +-
.../Impl/Cluster/ClusterGroupImpl.cs | 78 ++-
.../Impl/Compute/ComputeImpl.cs | 6 +-
.../Impl/Datastream/DataStreamerImpl.cs | 3 +-
.../Impl/Datastream/StreamReceiverHolder.cs | 2 +-
.../dotnet/Apache.Ignite.Core/Impl/Ignite.cs | 279 +++++-----
.../Apache.Ignite.Core/Impl/Log/JavaLogger.cs | 23 +-
.../Apache.Ignite.Core/Impl/PlatformTarget.cs | 18 +-
.../Impl/Plugin/PluginContext.cs | 7 +-
.../Impl/Unmanaged/IgniteJniNativeMethods.cs | 91 +--
.../Impl/Unmanaged/UnmanagedUtils.cs | 308 +----------
32 files changed, 768 insertions(+), 2023 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformAbstractTarget.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformAbstractTarget.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformAbstractTarget.java
index 5e785e2..4a584f9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformAbstractTarget.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformAbstractTarget.java
@@ -130,7 +130,7 @@ public abstract class PlatformAbstractTarget implements PlatformTarget {
* @return Dummy value which is never returned.
* @throws IgniteCheckedException Exception to be thrown.
*/
- private <T> T throwUnsupported(int type) throws IgniteCheckedException {
+ public static <T> T throwUnsupported(int type) throws IgniteCheckedException {
throw new IgniteCheckedException("Unsupported operation type: " + type);
}
@@ -142,8 +142,8 @@ public abstract class PlatformAbstractTarget implements PlatformTarget {
* @param writer Writer.
* @throws IgniteCheckedException In case of error.
*/
- protected PlatformListenable readAndListenFuture(BinaryRawReader reader, IgniteInternalFuture fut,
- PlatformFutureUtils.Writer writer)
+ private PlatformListenable readAndListenFuture(BinaryRawReader reader, IgniteInternalFuture fut,
+ PlatformFutureUtils.Writer writer)
throws IgniteCheckedException {
long futId = reader.readLong();
int futTyp = reader.readInt();
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformIgnition.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformIgnition.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformIgnition.java
index 422e16e..754c69e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformIgnition.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformIgnition.java
@@ -49,9 +49,8 @@ public class PlatformIgnition {
* @param factoryId Factory ID.
* @param envPtr Environment pointer.
* @param dataPtr Optional pointer to additional data required for startup.
- * @return Ignite instance.
*/
- public static synchronized PlatformProcessor start(@Nullable String springCfgPath,
+ public static synchronized void start(@Nullable String springCfgPath,
@Nullable String igniteInstanceName, int factoryId, long envPtr, long dataPtr) {
if (envPtr <= 0)
throw new IgniteException("Environment pointer must be positive.");
@@ -78,8 +77,6 @@ public class PlatformIgnition {
PlatformProcessor old = instances.put(igniteInstanceName, proc);
assert old == null;
-
- return proc;
}
finally {
Thread.currentThread().setContextClassLoader(oldClsLdr);
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
index cd170ed..f26826e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
@@ -23,7 +23,6 @@ import org.apache.ignite.IgniteException;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.GridProcessorAdapter;
import org.apache.ignite.internal.processors.platform.cache.store.PlatformCacheStore;
-import org.jetbrains.annotations.Nullable;
/**
* No-op processor.
@@ -61,139 +60,8 @@ public class PlatformNoopProcessor extends GridProcessorAdapter implements Platf
}
/** {@inheritDoc} */
- @Override public PlatformTargetProxy cache(@Nullable String name) throws IgniteCheckedException {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy createCache(@Nullable String name) throws IgniteCheckedException {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy getOrCreateCache(@Nullable String name) throws IgniteCheckedException {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy createCacheFromConfig(long memPtr) throws IgniteCheckedException {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy getOrCreateCacheFromConfig(long memPtr) throws IgniteCheckedException {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public void destroyCache(@Nullable String name) throws IgniteCheckedException {
- // No-op.
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy affinity(@Nullable String name) throws IgniteCheckedException {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy dataStreamer(@Nullable String cacheName, boolean keepBinary)
- throws IgniteCheckedException {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy transactions() {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy projection() throws IgniteCheckedException {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy compute(PlatformTargetProxy grp) {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy message(PlatformTargetProxy grp) {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy events(PlatformTargetProxy grp) {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy services(PlatformTargetProxy grp) {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy extensions() {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy extension(int id) {
- return null;
- }
-
- /** {@inheritDoc} */
@Override public void registerStore(PlatformCacheStore store, boolean convertBinary)
throws IgniteCheckedException {
// No-op.
}
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy atomicLong(String name, long initVal, boolean create) throws IgniteException {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public void getIgniteConfiguration(long memPtr) {
- // No-op.
- }
-
- /** {@inheritDoc} */
- @Override public void getCacheNames(long memPtr) {
- // No-op.
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy atomicSequence(String name, long initVal, boolean create) throws IgniteException {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy atomicReference(String name, long memPtr, boolean create) throws IgniteException {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy createNearCache(@Nullable String cacheName, long memPtr) {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy getOrCreateNearCache(@Nullable String cacheName, long memPtr) {
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public boolean loggerIsLevelEnabled(int level) {
- return false;
- }
-
- /** {@inheritDoc} */
- @Override public void loggerLog(int level, String message, String category, String errorInfo) {
- // No-op.
- }
-
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy binaryProcessor() {
- return null;
- }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
index 54f33a7..9c17d78 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
@@ -62,139 +62,6 @@ public interface PlatformProcessor extends GridProcessor {
public void awaitStart() throws IgniteCheckedException;
/**
- * Get cache.
- *
- * @param name Cache name.
- * @return Cache.
- * @throws IgniteCheckedException If failed.
- */
- public PlatformTargetProxy cache(@Nullable String name) throws IgniteCheckedException;
-
- /**
- * Create cache.
- *
- * @param name Cache name.
- * @return Cache.
- * @throws IgniteCheckedException If failed.
- */
- public PlatformTargetProxy createCache(@Nullable String name) throws IgniteCheckedException;
-
- /**
- * Get or create cache.
- *
- * @param name Cache name.
- * @return Cache.
- * @throws IgniteCheckedException If failed.
- */
- public PlatformTargetProxy getOrCreateCache(@Nullable String name) throws IgniteCheckedException;
-
- /**
- * Create cache.
- *
- * @param memPtr Stream with cache config.
- * @return Cache.
- * @throws IgniteCheckedException If failed.
- */
- public PlatformTargetProxy createCacheFromConfig(long memPtr) throws IgniteCheckedException;
-
- /**
- * Get or create cache.
- *
- * @param memPtr Stream with cache config.
- * @return Cache.
- * @throws IgniteCheckedException If failed.
- */
- public PlatformTargetProxy getOrCreateCacheFromConfig(long memPtr) throws IgniteCheckedException;
-
- /**
- * Destroy dynamically created cache.
- *
- * @param name Cache name.
- * @throws IgniteCheckedException If failed.
- */
- public void destroyCache(@Nullable String name) throws IgniteCheckedException;
-
- /**
- * Get affinity.
- *
- * @param name Cache name.
- * @return Affinity.
- * @throws IgniteCheckedException If failed.
- */
- public PlatformTargetProxy affinity(@Nullable String name) throws IgniteCheckedException;
-
- /**
- * Get data streamer.
- *
- * @param cacheName Cache name.
- * @param keepBinary Binary flag.
- * @return Data streamer.
- * @throws IgniteCheckedException If failed.
- */
- public PlatformTargetProxy dataStreamer(@Nullable String cacheName, boolean keepBinary) throws IgniteCheckedException;
-
- /**
- * Get transactions.
- *
- * @return Transactions.
- */
- public PlatformTargetProxy transactions();
-
- /**
- * Get projection.
- *
- * @return Projection.
- * @throws IgniteCheckedException If failed.
- */
- public PlatformTargetProxy projection() throws IgniteCheckedException;
-
- /**
- * Create interop compute.
- *
- * @param grp Cluster group.
- * @return Compute instance.
- */
- public PlatformTargetProxy compute(PlatformTargetProxy grp);
-
- /**
- * Create interop messaging.
- *
- * @param grp Cluster group.
- * @return Messaging instance.
- */
- public PlatformTargetProxy message(PlatformTargetProxy grp);
-
- /**
- * Create interop events.
- *
- * @param grp Cluster group.
- * @return Events instance.
- */
- public PlatformTargetProxy events(PlatformTargetProxy grp);
-
- /**
- * Create interop services.
- *
- * @param grp Cluster group.
- * @return Services instance.
- */
- public PlatformTargetProxy services(PlatformTargetProxy grp);
-
- /**
- * Get platform extensions. Override this method to provide any additional targets and operations you need.
- *
- * @return Platform extensions.
- */
- public PlatformTargetProxy extensions();
-
- /**
- * Gets platform extension by id.
- *
- * @return Platform extension target.
- */
- public PlatformTargetProxy extension(int id);
-
- /**
* Register cache store.
*
* @param store Store.
@@ -202,87 +69,4 @@ public interface PlatformProcessor extends GridProcessor {
* @throws IgniteCheckedException If failed.
*/
public void registerStore(PlatformCacheStore store, boolean convertBinary) throws IgniteCheckedException;
-
- /**
- * Get or create AtomicLong.
- * @param name Name.
- * @param initVal Initial value.
- * @param create Create flag.
- * @return Platform atomic long.
- */
- public PlatformTargetProxy atomicLong(String name, long initVal, boolean create);
-
- /**
- * Get or create AtomicSequence.
- * @param name Name.
- * @param initVal Initial value.
- * @param create Create flag.
- * @return Platform atomic long.
- */
- public PlatformTargetProxy atomicSequence(String name, long initVal, boolean create);
-
- /**
- * Get or create AtomicReference.
- * @param name Name.
- * @param memPtr Pointer to a stream with initial value. 0 for null initial value.
- * @param create Create flag.
- * @return Platform atomic long.
- */
- public PlatformTargetProxy atomicReference(String name, long memPtr, boolean create);
-
- /**
- * Gets the configuration of the current Ignite instance.
- *
- * @param memPtr Stream to write data to.
- */
- public void getIgniteConfiguration(long memPtr);
-
- /**
- * Gets the cache names.
- *
- * @param memPtr Stream to write data to.
- */
- public void getCacheNames(long memPtr);
-
- /**
- * Starts a near cache on local node if cache was previously started.
- *
- * @param cacheName Cache name.
- * @param memPtr Pointer to a stream with near cache config. 0 for default config.
- * @return Cache.
- */
- public PlatformTargetProxy createNearCache(@Nullable String cacheName, long memPtr);
-
- /**
- * Gets existing near cache with the given name or creates a new one.
- *
- * @param cacheName Cache name.
- * @param memPtr Pointer to a stream with near cache config. 0 for default config.
- * @return Cache.
- */
- public PlatformTargetProxy getOrCreateNearCache(@Nullable String cacheName, long memPtr);
-
- /**
- * Gets a value indicating whether Ignite logger has specified level enabled.
- *
- * @param level Log level.
- */
- public boolean loggerIsLevelEnabled(int level);
-
- /**
- * Logs to the Ignite logger.
- *
- * @param level Log level.
- * @param message Message.
- * @param category Category.
- * @param errorInfo Error info.
- */
- public void loggerLog(int level, String message, String category, String errorInfo);
-
- /**
- * Gets the binary processor.
- *
- * @return Binary processor.
- */
- public PlatformTargetProxy binaryProcessor();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
index 1da3112..612f154 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
@@ -41,17 +41,13 @@ import org.apache.ignite.internal.processors.platform.cache.PlatformCacheExtensi
import org.apache.ignite.internal.processors.platform.cache.affinity.PlatformAffinity;
import org.apache.ignite.internal.processors.platform.cache.store.PlatformCacheStore;
import org.apache.ignite.internal.processors.platform.cluster.PlatformClusterGroup;
-import org.apache.ignite.internal.processors.platform.compute.PlatformCompute;
import org.apache.ignite.internal.processors.platform.datastreamer.PlatformDataStreamer;
import org.apache.ignite.internal.processors.platform.datastructures.PlatformAtomicLong;
import org.apache.ignite.internal.processors.platform.datastructures.PlatformAtomicReference;
import org.apache.ignite.internal.processors.platform.datastructures.PlatformAtomicSequence;
import org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetCacheStore;
-import org.apache.ignite.internal.processors.platform.events.PlatformEvents;
import org.apache.ignite.internal.processors.platform.memory.PlatformMemory;
import org.apache.ignite.internal.processors.platform.memory.PlatformOutputStream;
-import org.apache.ignite.internal.processors.platform.messaging.PlatformMessaging;
-import org.apache.ignite.internal.processors.platform.services.PlatformServices;
import org.apache.ignite.internal.processors.platform.transactions.PlatformTransactions;
import org.apache.ignite.internal.processors.platform.utils.PlatformConfigurationUtils;
import org.apache.ignite.internal.processors.platform.utils.PlatformUtils;
@@ -74,7 +70,73 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
* GridGain platform processor.
*/
@SuppressWarnings({"ConditionalExpressionWithIdenticalBranches", "unchecked"})
-public class PlatformProcessorImpl extends GridProcessorAdapter implements PlatformProcessor {
+public class PlatformProcessorImpl extends GridProcessorAdapter implements PlatformProcessor, PlatformTarget {
+ /** */
+ private static final int OP_GET_CACHE = 1;
+
+ /** */
+ private static final int OP_CREATE_CACHE = 2;
+
+ /** */
+ private static final int OP_GET_OR_CREATE_CACHE = 3;
+
+ /** */
+ private static final int OP_CREATE_CACHE_FROM_CONFIG = 4;
+
+ /** */
+ private static final int OP_GET_OR_CREATE_CACHE_FROM_CONFIG = 5;
+
+ /** */
+ private static final int OP_DESTROY_CACHE = 6;
+
+ /** */
+ private static final int OP_GET_AFFINITY = 7;
+
+ /** */
+ private static final int OP_GET_DATA_STREAMER = 8;
+
+ /** */
+ private static final int OP_GET_TRANSACTIONS = 9;
+
+ /** */
+ private static final int OP_GET_CLUSTER_GROUP = 10;
+
+ /** */
+ private static final int OP_GET_EXTENSION = 11;
+
+ /** */
+ private static final int OP_GET_ATOMIC_LONG = 12;
+
+ /** */
+ private static final int OP_GET_ATOMIC_REFERENCE = 13;
+
+ /** */
+ private static final int OP_GET_ATOMIC_SEQUENCE = 14;
+
+ /** */
+ private static final int OP_GET_IGNITE_CONFIGURATION = 15;
+
+ /** */
+ private static final int OP_GET_CACHE_NAMES = 16;
+
+ /** */
+ private static final int OP_CREATE_NEAR_CACHE = 17;
+
+ /** */
+ private static final int OP_GET_OR_CREATE_NEAR_CACHE = 18;
+
+ /** */
+ private static final int OP_LOGGER_IS_LEVEL_ENABLED = 19;
+
+ /** */
+ private static final int OP_LOGGER_LOG = 20;
+
+ /** */
+ private static final int OP_GET_BINARY_PROCESSOR = 21;
+
+ /** */
+ private static final int OP_RELEASE_START = 22;
+
/** Start latch. */
private final CountDownLatch startLatch = new CountDownLatch(1);
@@ -157,7 +219,7 @@ public class PlatformProcessorImpl extends GridProcessorAdapter implements Platf
out.synchronize();
- platformCtx.gateway().onStart(this, mem.pointer());
+ platformCtx.gateway().onStart(new PlatformTargetProxyImpl(this, platformCtx), mem.pointer());
}
// At this moment all necessary native libraries must be loaded, so we can process with store creation.
@@ -218,321 +280,360 @@ public class PlatformProcessorImpl extends GridProcessorAdapter implements Platf
}
/** {@inheritDoc} */
- @Override public PlatformTargetProxy cache(@Nullable String name) throws IgniteCheckedException {
- IgniteCacheProxy cache = (IgniteCacheProxy)ctx.grid().cache(name);
+ @Override public void registerStore(PlatformCacheStore store, boolean convertBinary)
+ throws IgniteCheckedException {
+ storeLock.readLock().lock();
- if (cache == null)
- throw new IllegalArgumentException("Cache doesn't exist: " + name);
+ try {
+ if (stopped)
+ throw new IgniteCheckedException("Failed to initialize interop store because node is stopping: " +
+ store);
- return createPlatformCache(cache);
+ if (started)
+ registerStore0(store, convertBinary);
+ else
+ pendingStores.add(new StoreInfo(store, convertBinary));
+ }
+ finally {
+ storeLock.readLock().unlock();
+ }
}
/** {@inheritDoc} */
- @Override public PlatformTargetProxy createCache(@Nullable String name) throws IgniteCheckedException {
- IgniteCacheProxy cache = (IgniteCacheProxy)ctx.grid().createCache(name);
-
- assert cache != null;
+ @Override public void onDisconnected(IgniteFuture<?> reconnectFut) throws IgniteCheckedException {
+ platformCtx.gateway().onClientDisconnected();
- return createPlatformCache(cache);
+ // 1) onReconnected is called on all grid components.
+ // 2) After all of grid components have completed their reconnection, reconnectFut is completed.
+ reconnectFut.listen(new CI1<IgniteFuture<?>>() {
+ @Override public void apply(IgniteFuture<?> future) {
+ platformCtx.gateway().onClientReconnected(clusterRestarted);
+ }
+ });
}
/** {@inheritDoc} */
- @Override public PlatformTargetProxy getOrCreateCache(@Nullable String name) throws IgniteCheckedException {
- IgniteCacheProxy cache = (IgniteCacheProxy)ctx.grid().getOrCreateCache(name);
+ @Override public IgniteInternalFuture<?> onReconnected(boolean clusterRestarted) throws IgniteCheckedException {
+ // Save the flag value for callback of reconnectFut.
+ this.clusterRestarted = clusterRestarted;
+
+ return null;
+ }
+ /**
+ * Creates new platform cache.
+ */
+ private PlatformTarget createPlatformCache(IgniteCacheProxy cache) {
assert cache != null;
- return createPlatformCache(cache);
+ return new PlatformCache(platformCtx, cache, false, cacheExts);
}
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy createCacheFromConfig(long memPtr) throws IgniteCheckedException {
- BinaryRawReaderEx reader = platformCtx.reader(platformCtx.memory().get(memPtr));
- CacheConfiguration cfg = PlatformConfigurationUtils.readCacheConfiguration(reader);
+ /**
+ * Checks whether logger level is enabled.
+ *
+ * @param level Level.
+ * @return Result.
+ */
+ private boolean loggerIsLevelEnabled(int level) {
+ IgniteLogger log = ctx.grid().log();
- IgniteCacheProxy cache = reader.readBoolean()
- ? (IgniteCacheProxy)ctx.grid().createCache(cfg, PlatformConfigurationUtils.readNearConfiguration(reader))
- : (IgniteCacheProxy)ctx.grid().createCache(cfg);
+ switch (level) {
+ case PlatformLogger.LVL_TRACE:
+ return log.isTraceEnabled();
+ case PlatformLogger.LVL_DEBUG:
+ return log.isDebugEnabled();
+ case PlatformLogger.LVL_INFO:
+ return log.isInfoEnabled();
+ case PlatformLogger.LVL_WARN:
+ return true;
+ case PlatformLogger.LVL_ERROR:
+ return true;
+ default:
+ assert false;
+ }
- return createPlatformCache(cache);
+ return false;
}
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy getOrCreateCacheFromConfig(long memPtr) throws IgniteCheckedException {
- BinaryRawReaderEx reader = platformCtx.reader(platformCtx.memory().get(memPtr));
- CacheConfiguration cfg = PlatformConfigurationUtils.readCacheConfiguration(reader);
+ /**
+ * Logs to the Ignite logger.
+ *
+ * @param level Level.
+ * @param message Message.
+ * @param category Category.
+ * @param errorInfo Exception.
+ */
+ private void loggerLog(int level, String message, String category, String errorInfo) {
+ IgniteLogger log = ctx.grid().log();
- IgniteCacheProxy cache = reader.readBoolean()
- ? (IgniteCacheProxy)ctx.grid().getOrCreateCache(cfg,
- PlatformConfigurationUtils.readNearConfiguration(reader))
- : (IgniteCacheProxy)ctx.grid().getOrCreateCache(cfg);
+ if (category != null)
+ log = log.getLogger(category);
- return createPlatformCache(cache);
- }
+ Throwable err = errorInfo == null ? null : new IgniteException("Platform error:" + errorInfo);
- /** {@inheritDoc} */
- @Override public void destroyCache(@Nullable String name) throws IgniteCheckedException {
- ctx.grid().destroyCache(name);
+ switch (level) {
+ case PlatformLogger.LVL_TRACE:
+ log.trace(message);
+ break;
+ case PlatformLogger.LVL_DEBUG:
+ log.debug(message);
+ break;
+ case PlatformLogger.LVL_INFO:
+ log.info(message);
+ break;
+ case PlatformLogger.LVL_WARN:
+ log.warning(message, err);
+ break;
+ case PlatformLogger.LVL_ERROR:
+ log.error(message, err);
+ break;
+ default:
+ assert false;
+ }
}
/** {@inheritDoc} */
- @Override public PlatformTargetProxy affinity(@Nullable String name) throws IgniteCheckedException {
- return proxy(new PlatformAffinity(platformCtx, ctx, name));
+ @Override public long processInLongOutLong(int type, long val) throws IgniteCheckedException {
+ switch (type) {
+ case OP_LOGGER_IS_LEVEL_ENABLED: {
+ return loggerIsLevelEnabled((int) val) ? PlatformAbstractTarget.TRUE : PlatformAbstractTarget.FALSE;
+ }
+
+ case OP_RELEASE_START: {
+ releaseStart();
+
+ return 0;
+ }
+ }
+
+ return PlatformAbstractTarget.throwUnsupported(type);
}
/** {@inheritDoc} */
- @Override public PlatformTargetProxy dataStreamer(@Nullable String cacheName, boolean keepBinary)
- throws IgniteCheckedException {
- IgniteDataStreamer ldr = ctx.dataStream().dataStreamer(cacheName);
+ @Override public long processInStreamOutLong(int type, BinaryRawReaderEx reader) throws IgniteCheckedException {
+ switch (type) {
+ case OP_DESTROY_CACHE: {
+ ctx.grid().destroyCache(reader.readString());
+
+ return 0;
+ }
- ldr.keepBinary(true);
+ case OP_LOGGER_LOG: {
+ loggerLog(reader.readInt(), reader.readString(), reader.readString(), reader.readString());
- return proxy(new PlatformDataStreamer(platformCtx, cacheName, (DataStreamerImpl)ldr, keepBinary));
+ return 0;
+ }
+ }
+
+ return PlatformAbstractTarget.throwUnsupported(type);
}
/** {@inheritDoc} */
- @Override public PlatformTargetProxy transactions() {
- return proxy(new PlatformTransactions(platformCtx));
+ @Override public long processInStreamOutLong(int type, BinaryRawReaderEx reader, PlatformMemory mem) throws IgniteCheckedException {
+ return processInStreamOutLong(type, reader);
}
/** {@inheritDoc} */
- @Override public PlatformTargetProxy projection() throws IgniteCheckedException {
- return proxy(new PlatformClusterGroup(platformCtx, ctx.grid().cluster()));
+ @Override public void processInStreamOutStream(int type, BinaryRawReaderEx reader, BinaryRawWriterEx writer) throws IgniteCheckedException {
+ PlatformAbstractTarget.throwUnsupported(type);
}
/** {@inheritDoc} */
- @Override public PlatformTargetProxy compute(PlatformTargetProxy grp) {
- PlatformClusterGroup grp0 = (PlatformClusterGroup)grp.unwrap();
+ @Override public PlatformTarget processInStreamOutObject(int type, BinaryRawReaderEx reader) throws IgniteCheckedException {
+ switch (type) {
+ case OP_GET_CACHE: {
+ String name = reader.readString();
- return proxy(new PlatformCompute(platformCtx, grp0.projection(), PlatformUtils.ATTR_PLATFORM));
- }
+ IgniteCacheProxy cache = (IgniteCacheProxy)ctx.grid().cache(name);
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy message(PlatformTargetProxy grp) {
- PlatformClusterGroup grp0 = (PlatformClusterGroup)grp.unwrap();
+ if (cache == null)
+ throw new IllegalArgumentException("Cache doesn't exist: " + name);
- return proxy(new PlatformMessaging(platformCtx, grp0.projection().ignite().message(grp0.projection())));
- }
+ return createPlatformCache(cache);
+ }
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy events(PlatformTargetProxy grp) {
- PlatformClusterGroup grp0 = (PlatformClusterGroup)grp.unwrap();
+ case OP_CREATE_CACHE: {
+ String name = reader.readString();
- return proxy(new PlatformEvents(platformCtx, grp0.projection().ignite().events(grp0.projection())));
- }
+ IgniteCacheProxy cache = (IgniteCacheProxy)ctx.grid().createCache(name);
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy services(PlatformTargetProxy grp) {
- PlatformClusterGroup grp0 = (PlatformClusterGroup)grp.unwrap();
+ return createPlatformCache(cache);
+ }
- return proxy(new PlatformServices(platformCtx, grp0.projection().ignite().services(grp0.projection()), false));
- }
+ case OP_GET_OR_CREATE_CACHE: {
+ String name = reader.readString();
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy extensions() {
- return null;
- }
+ IgniteCacheProxy cache = (IgniteCacheProxy)ctx.grid().getOrCreateCache(name);
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy extension(int id) {
- if (extensions != null && id < extensions.length) {
- PlatformPluginExtension ext = extensions[id];
+ return createPlatformCache(cache);
+ }
- if (ext != null)
- return proxy(ext.createTarget());
- }
+ case OP_CREATE_CACHE_FROM_CONFIG: {
+ CacheConfiguration cfg = PlatformConfigurationUtils.readCacheConfiguration(reader);
- throw new IgniteException("Platform extension is not registered [id=" + id + ']');
- }
+ IgniteCacheProxy cache = reader.readBoolean()
+ ? (IgniteCacheProxy)ctx.grid().createCache(cfg, PlatformConfigurationUtils.readNearConfiguration(reader))
+ : (IgniteCacheProxy)ctx.grid().createCache(cfg);
- /** {@inheritDoc} */
- @Override public void registerStore(PlatformCacheStore store, boolean convertBinary)
- throws IgniteCheckedException {
- storeLock.readLock().lock();
+ return createPlatformCache(cache);
+ }
- try {
- if (stopped)
- throw new IgniteCheckedException("Failed to initialize interop store because node is stopping: " +
- store);
+ case OP_GET_OR_CREATE_CACHE_FROM_CONFIG: {
+ CacheConfiguration cfg = PlatformConfigurationUtils.readCacheConfiguration(reader);
- if (started)
- registerStore0(store, convertBinary);
- else
- pendingStores.add(new StoreInfo(store, convertBinary));
- }
- finally {
- storeLock.readLock().unlock();
- }
- }
+ IgniteCacheProxy cache = reader.readBoolean()
+ ? (IgniteCacheProxy)ctx.grid().getOrCreateCache(cfg,
+ PlatformConfigurationUtils.readNearConfiguration(reader))
+ : (IgniteCacheProxy)ctx.grid().getOrCreateCache(cfg);
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy atomicLong(String name, long initVal, boolean create) throws IgniteException {
- GridCacheAtomicLongImpl atomicLong = (GridCacheAtomicLongImpl)ignite().atomicLong(name, initVal, create);
+ return createPlatformCache(cache);
+ }
- if (atomicLong == null)
- return null;
+ case OP_GET_AFFINITY: {
+ return new PlatformAffinity(platformCtx, ctx, reader.readString());
+ }
- return proxy(new PlatformAtomicLong(platformCtx, atomicLong));
- }
+ case OP_GET_DATA_STREAMER: {
+ String cacheName = reader.readString();
+ boolean keepBinary = reader.readBoolean();
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy atomicSequence(String name, long initVal, boolean create)
- throws IgniteException {
- IgniteAtomicSequence atomicSeq = ignite().atomicSequence(name, initVal, create);
+ IgniteDataStreamer ldr = ctx.dataStream().dataStreamer(cacheName);
- if (atomicSeq == null)
- return null;
+ ldr.keepBinary(true);
- return proxy(new PlatformAtomicSequence(platformCtx, atomicSeq));
- }
+ return new PlatformDataStreamer(platformCtx, cacheName, (DataStreamerImpl)ldr, keepBinary);
+ }
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy atomicReference(String name, long memPtr, boolean create)
- throws IgniteException {
- PlatformAtomicReference ref = PlatformAtomicReference.createInstance(platformCtx, name, memPtr, create);
+ case OP_GET_EXTENSION: {
+ int id = reader.readInt();
- return ref != null ? proxy(ref) : null;
- }
+ if (extensions != null && id < extensions.length) {
+ PlatformPluginExtension ext = extensions[id];
- /** {@inheritDoc} */
- @Override public void onDisconnected(IgniteFuture<?> reconnectFut) throws IgniteCheckedException {
- platformCtx.gateway().onClientDisconnected();
+ if (ext != null) {
+ return ext.createTarget();
+ }
+ }
- // 1) onReconnected is called on all grid components.
- // 2) After all of grid components have completed their reconnection, reconnectFut is completed.
- reconnectFut.listen(new CI1<IgniteFuture<?>>() {
- @Override public void apply(IgniteFuture<?> future) {
- platformCtx.gateway().onClientReconnected(clusterRestarted);
+ throw new IgniteException("Platform extension is not registered [id=" + id + ']');
}
- });
- }
- /** {@inheritDoc} */
- @Override public IgniteInternalFuture<?> onReconnected(boolean clusterRestarted) throws IgniteCheckedException {
- // Save the flag value for callback of reconnectFut.
- this.clusterRestarted = clusterRestarted;
+ case OP_GET_ATOMIC_LONG: {
+ String name = reader.readString();
+ long initVal = reader.readLong();
+ boolean create = reader.readBoolean();
- return null;
- }
+ GridCacheAtomicLongImpl atomicLong = (GridCacheAtomicLongImpl)ignite().atomicLong(name, initVal, create);
- /** {@inheritDoc} */
- @Override public void getIgniteConfiguration(long memPtr) {
- PlatformOutputStream stream = platformCtx.memory().get(memPtr).output();
- BinaryRawWriterEx writer = platformCtx.writer(stream);
+ if (atomicLong == null)
+ return null;
- PlatformConfigurationUtils.writeIgniteConfiguration(writer, ignite().configuration());
+ return new PlatformAtomicLong(platformCtx, atomicLong);
+ }
- stream.synchronize();
- }
+ case OP_GET_ATOMIC_REFERENCE: {
+ String name = reader.readString();
+ Object initVal = reader.readObjectDetached();
+ boolean create = reader.readBoolean();
- /** {@inheritDoc} */
- @Override public void getCacheNames(long memPtr) {
- PlatformOutputStream stream = platformCtx.memory().get(memPtr).output();
- BinaryRawWriterEx writer = platformCtx.writer(stream);
+ return PlatformAtomicReference.createInstance(platformCtx, name, initVal, create);
+ }
- Collection<String> names = ignite().cacheNames();
+ case OP_GET_ATOMIC_SEQUENCE: {
+ String name = reader.readString();
+ long initVal = reader.readLong();
+ boolean create = reader.readBoolean();
- writer.writeInt(names.size());
+ IgniteAtomicSequence atomicSeq = ignite().atomicSequence(name, initVal, create);
- for (String name : names)
- writer.writeString(name);
+ if (atomicSeq == null)
+ return null;
- stream.synchronize();
- }
+ return new PlatformAtomicSequence(platformCtx, atomicSeq);
+ }
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy createNearCache(@Nullable String cacheName, long memPtr) {
- NearCacheConfiguration cfg = getNearCacheConfiguration(memPtr);
+ case OP_CREATE_NEAR_CACHE: {
+ String cacheName = reader.readString();
- IgniteCacheProxy cache = (IgniteCacheProxy)ctx.grid().createNearCache(cacheName, cfg);
+ NearCacheConfiguration cfg = PlatformConfigurationUtils.readNearConfiguration(reader);
- return createPlatformCache(cache);
- }
+ IgniteCacheProxy cache = (IgniteCacheProxy)ctx.grid().createNearCache(cacheName, cfg);
- /** {@inheritDoc} */
- @Override public PlatformTargetProxy getOrCreateNearCache(@Nullable String cacheName, long memPtr) {
- NearCacheConfiguration cfg = getNearCacheConfiguration(memPtr);
+ return createPlatformCache(cache);
+ }
+
+ case OP_GET_OR_CREATE_NEAR_CACHE: {
+ String cacheName = reader.readString();
- IgniteCacheProxy cache = (IgniteCacheProxy)ctx.grid().getOrCreateNearCache(cacheName, cfg);
+ NearCacheConfiguration cfg = PlatformConfigurationUtils.readNearConfiguration(reader);
- return createPlatformCache(cache);
+ IgniteCacheProxy cache = (IgniteCacheProxy)ctx.grid().getOrCreateNearCache(cacheName, cfg);
+
+ return createPlatformCache(cache);
+ }
+ }
+
+ return PlatformAbstractTarget.throwUnsupported(type);
}
- /**
- * Creates new platform cache.
- */
- private PlatformTargetProxy createPlatformCache(IgniteCacheProxy cache) {
- return proxy(new PlatformCache(platformCtx, cache, false, cacheExts));
+ /** {@inheritDoc} */
+ @Override public PlatformTarget processInObjectStreamOutObjectStream(int type, @Nullable PlatformTarget arg,
+ BinaryRawReaderEx reader,
+ BinaryRawWriterEx writer)
+ throws IgniteCheckedException {
+ return PlatformAbstractTarget.throwUnsupported(type);
}
/** {@inheritDoc} */
- @Override public boolean loggerIsLevelEnabled(int level) {
- IgniteLogger log = ctx.grid().log();
+ @Override public void processOutStream(int type, BinaryRawWriterEx writer) throws IgniteCheckedException {
+ switch (type) {
+ case OP_GET_IGNITE_CONFIGURATION: {
+ PlatformConfigurationUtils.writeIgniteConfiguration(writer, ignite().configuration());
- switch (level) {
- case PlatformLogger.LVL_TRACE:
- return log.isTraceEnabled();
- case PlatformLogger.LVL_DEBUG:
- return log.isDebugEnabled();
- case PlatformLogger.LVL_INFO:
- return log.isInfoEnabled();
- case PlatformLogger.LVL_WARN:
- return true;
- case PlatformLogger.LVL_ERROR:
- return true;
- default:
- assert false;
+ return;
+ }
+
+ case OP_GET_CACHE_NAMES: {
+ Collection<String> names = ignite().cacheNames();
+
+ writer.writeInt(names.size());
+
+ for (String name : names)
+ writer.writeString(name);
+
+ return;
+ }
}
- return false;
+ PlatformAbstractTarget.throwUnsupported(type);
}
/** {@inheritDoc} */
- @Override public void loggerLog(int level, String message, String category, String errorInfo) {
- IgniteLogger log = ctx.grid().log();
+ @Override public PlatformTarget processOutObject(int type) throws IgniteCheckedException {
+ switch (type) {
+ case OP_GET_TRANSACTIONS:
+ return new PlatformTransactions(platformCtx);
- if (category != null)
- log = log.getLogger(category);
+ case OP_GET_CLUSTER_GROUP:
+ return new PlatformClusterGroup(platformCtx, ctx.grid().cluster());
- Throwable err = errorInfo == null ? null : new IgniteException("Platform error:" + errorInfo);
-
- switch (level) {
- case PlatformLogger.LVL_TRACE:
- log.trace(message);
- break;
- case PlatformLogger.LVL_DEBUG:
- log.debug(message);
- break;
- case PlatformLogger.LVL_INFO:
- log.info(message);
- break;
- case PlatformLogger.LVL_WARN:
- log.warning(message, err);
- break;
- case PlatformLogger.LVL_ERROR:
- log.error(message, err);
- break;
- default:
- assert false;
+ case OP_GET_BINARY_PROCESSOR: {
+ return new PlatformBinaryProcessor(platformCtx);
+ }
}
+
+ return PlatformAbstractTarget.throwUnsupported(type);
}
/** {@inheritDoc} */
- @Override public PlatformTargetProxy binaryProcessor() {
- return proxy(new PlatformBinaryProcessor(platformCtx));
+ @Override public PlatformAsyncResult processInStreamAsync(int type, BinaryRawReaderEx reader) throws IgniteCheckedException {
+ return PlatformAbstractTarget.throwUnsupported(type);
}
- /**
- * Gets the near cache config.
- *
- * @param memPtr Memory pointer.
- * @return Near config.
- */
- private NearCacheConfiguration getNearCacheConfiguration(long memPtr) {
- assert memPtr != 0;
-
- BinaryRawReaderEx reader = platformCtx.reader(platformCtx.memory().get(memPtr));
- return PlatformConfigurationUtils.readNearConfiguration(reader);
+ /** {@inheritDoc} */
+ @Override public Exception convertException(Exception e) {
+ return e;
}
/**
@@ -635,13 +736,6 @@ public class PlatformProcessorImpl extends GridProcessorAdapter implements Platf
}
/**
- * Wraps target in a proxy.
- */
- private PlatformTargetProxy proxy(PlatformTarget target) {
- return new PlatformTargetProxyImpl(target, platformCtx);
- }
-
- /**
* Store and manager pair.
*/
private static class StoreInfo {
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java
index f6e3d2e..7c1c03e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java
@@ -36,6 +36,10 @@ import org.apache.ignite.internal.processors.platform.PlatformAbstractTarget;
import org.apache.ignite.internal.processors.platform.PlatformContext;
import org.apache.ignite.internal.processors.platform.PlatformTarget;
import org.apache.ignite.internal.processors.platform.cache.PlatformCache;
+import org.apache.ignite.internal.processors.platform.compute.PlatformCompute;
+import org.apache.ignite.internal.processors.platform.events.PlatformEvents;
+import org.apache.ignite.internal.processors.platform.messaging.PlatformMessaging;
+import org.apache.ignite.internal.processors.platform.services.PlatformServices;
import org.apache.ignite.internal.processors.platform.utils.PlatformUtils;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.jetbrains.annotations.Nullable;
@@ -126,6 +130,19 @@ public class PlatformClusterGroup extends PlatformAbstractTarget {
/** */
private static final int OP_PERSISTENT_STORE_METRICS = 30;
+ /** */
+ private static final int OP_GET_COMPUTE = 31;
+
+ /** */
+ private static final int OP_GET_MESSAGING = 32;
+
+ /** */
+ private static final int OP_GET_EVENTS = 33;
+
+ /** */
+ private static final int OP_GET_SERVICES = 34;
+
+
/** Projection. */
private final ClusterGroupEx prj;
@@ -381,6 +398,18 @@ public class PlatformClusterGroup extends PlatformAbstractTarget {
case OP_FOR_SERVERS:
return new PlatformClusterGroup(platformCtx, (ClusterGroupEx)prj.forServers());
+
+ case OP_GET_COMPUTE:
+ return new PlatformCompute(platformCtx, prj, PlatformUtils.ATTR_PLATFORM);
+
+ case OP_GET_MESSAGING:
+ return new PlatformMessaging(platformCtx, platformCtx.kernalContext().grid().message(prj));
+
+ case OP_GET_EVENTS:
+ return new PlatformEvents(platformCtx, platformCtx.kernalContext().grid().events(prj));
+
+ case OP_GET_SERVICES:
+ return new PlatformServices(platformCtx, platformCtx.kernalContext().grid().services(prj),false);
}
return super.processOutObject(type);
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/datastructures/PlatformAtomicReference.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/datastructures/PlatformAtomicReference.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/datastructures/PlatformAtomicReference.java
index a644259..93c0040 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/datastructures/PlatformAtomicReference.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/datastructures/PlatformAtomicReference.java
@@ -23,7 +23,6 @@ import org.apache.ignite.internal.binary.BinaryRawWriterEx;
import org.apache.ignite.internal.processors.datastructures.GridCacheAtomicReferenceImpl;
import org.apache.ignite.internal.processors.platform.PlatformAbstractTarget;
import org.apache.ignite.internal.processors.platform.PlatformContext;
-import org.apache.ignite.internal.processors.platform.memory.PlatformMemory;
/**
* Platform atomic reference wrapper.
@@ -53,23 +52,15 @@ public class PlatformAtomicReference extends PlatformAbstractTarget {
*
* @param ctx Context.
* @param name Name.
- * @param memPtr Pointer to a stream with initial value. 0 for default value.
+ * @param initVal Initial value.
* @param create Create flag.
* @return Instance of a PlatformAtomicReference, or null when Ignite reference with specific name is null.
*/
- public static PlatformAtomicReference createInstance(PlatformContext ctx, String name, long memPtr,
+ public static PlatformAtomicReference createInstance(PlatformContext ctx, String name, Object initVal,
boolean create) {
assert ctx != null;
assert name != null;
- Object initVal = null;
-
- if (memPtr != 0) {
- try (PlatformMemory mem = ctx.memory().get(memPtr)) {
- initVal = ctx.reader(mem).readObjectDetached();
- }
- }
-
GridCacheAtomicReferenceImpl atomicRef =
(GridCacheAtomicReferenceImpl)ctx.kernalContext().grid().atomicReference(name, initVal, create);
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/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..07134a1 100644
--- a/modules/platforms/cpp/core/include/ignite/ignite.h
+++ b/modules/platforms/cpp/core/include/ignite/ignite.h
@@ -102,7 +102,7 @@ namespace ignite
template<typename K, typename V>
cache::Cache<K, V> GetCache(const char* name, IgniteError& err)
{
- impl::cache::CacheImpl* cacheImpl = impl.Get()->GetCache<K, V>(name, err);
+ impl::cache::CacheImpl* cacheImpl = impl.Get()->GetCache(name, err);
return cache::Cache<K, V>(cacheImpl);
}
@@ -139,7 +139,7 @@ namespace ignite
template<typename K, typename V>
cache::Cache<K, V> GetOrCreateCache(const char* name, IgniteError& err)
{
- impl::cache::CacheImpl* cacheImpl = impl.Get()->GetOrCreateCache<K, V>(name, err);
+ impl::cache::CacheImpl* cacheImpl = impl.Get()->GetOrCreateCache(name, err);
return cache::Cache<K, V>(cacheImpl);
}
@@ -176,7 +176,7 @@ namespace ignite
template<typename K, typename V>
cache::Cache<K, V> CreateCache(const char* name, IgniteError& err)
{
- impl::cache::CacheImpl* cacheImpl = impl.Get()->CreateCache<K, V>(name, err);
+ impl::cache::CacheImpl* cacheImpl = impl.Get()->CreateCache(name, err);
return cache::Cache<K, V>(cacheImpl);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/cpp/core/include/ignite/impl/compute/compute_impl.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/impl/compute/compute_impl.h b/modules/platforms/cpp/core/include/ignite/impl/compute/compute_impl.h
index 4ba1c1c..2b04dcb 100644
--- a/modules/platforms/cpp/core/include/ignite/impl/compute/compute_impl.h
+++ b/modules/platforms/cpp/core/include/ignite/impl/compute/compute_impl.h
@@ -208,7 +208,10 @@ namespace ignite
out.Synchronize();
- jobject target = InStreamOutObject(operation, *mem.Get());
+ IgniteError err;
+ jobject target = InStreamOutObject(operation, *mem.Get(), err);
+ IgniteError::ThrowIfNeeded(err);
+
std::auto_ptr<common::Cancelable> cancelable(new CancelableImpl(GetEnvironmentPointer(), target));
return cancelable;
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/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..d1763c4 100644
--- a/modules/platforms/cpp/core/include/ignite/impl/ignite_impl.h
+++ b/modules/platforms/cpp/core/include/ignite/impl/ignite_impl.h
@@ -28,14 +28,34 @@
#include <ignite/impl/cluster/cluster_group_impl.h>
#include <ignite/impl/compute/compute_impl.h>
+using namespace ignite::impl::interop;
+using namespace ignite::common::concurrent;
+using namespace ignite::impl::binary;
+using namespace ignite::binary;
+
namespace ignite
{
namespace impl
{
+ /*
+ * PlatformProcessor op codes.
+ */
+ struct ProcessorOp
+ {
+ enum Type
+ {
+ GET_CACHE = 1,
+ CREATE_CACHE = 2,
+ GET_OR_CREATE_CACHE = 3,
+ GET_TRANSACTIONS = 9,
+ GET_CLUSTER_GROUP = 10,
+ };
+ };
+
/**
* Ignite implementation.
*/
- class IGNITE_FRIEND_EXPORT IgniteImpl
+ class IGNITE_FRIEND_EXPORT IgniteImpl : private interop::InteropTarget
{
typedef common::concurrent::SharedPointer<IgniteEnvironment> SP_IgniteEnvironment;
typedef common::concurrent::SharedPointer<transactions::TransactionsImpl> SP_TransactionsImpl;
@@ -48,14 +68,9 @@ namespace ignite
* @param env Environment.
* @param javaRef Reference to java object.
*/
- IgniteImpl(SP_IgniteEnvironment env, jobject javaRef);
+ IgniteImpl(SP_IgniteEnvironment env);
/**
- * Destructor.
- */
- ~IgniteImpl();
-
- /**
* Get name of the Ignite.
*
* @return Name.
@@ -82,23 +97,9 @@ namespace ignite
* @param name Cache name.
* @param err Error.
*/
- template<typename K, typename V>
cache::CacheImpl* GetCache(const char* name, IgniteError& err)
{
- ignite::jni::java::JniErrorInfo jniErr;
-
- jobject cacheJavaRef = env.Get()->Context()->ProcessorCache(javaRef, name, &jniErr);
-
- if (!cacheJavaRef)
- {
- IgniteError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
-
- return NULL;
- }
-
- char* name0 = common::CopyChars(name);
-
- return new cache::CacheImpl(name0, env, cacheJavaRef);
+ return GetOrCreateCache(name, err, ProcessorOp::GET_CACHE);
}
/**
@@ -107,23 +108,9 @@ namespace ignite
* @param name Cache name.
* @param err Error.
*/
- template<typename K, typename V>
cache::CacheImpl* GetOrCreateCache(const char* name, IgniteError& err)
{
- ignite::jni::java::JniErrorInfo jniErr;
-
- jobject cacheJavaRef = env.Get()->Context()->ProcessorGetOrCreateCache(javaRef, name, &jniErr);
-
- if (!cacheJavaRef)
- {
- IgniteError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
-
- return NULL;
- }
-
- char* name0 = common::CopyChars(name);
-
- return new cache::CacheImpl(name0, env, cacheJavaRef);
+ return GetOrCreateCache(name, err, ProcessorOp::GET_OR_CREATE_CACHE);
}
/**
@@ -132,23 +119,9 @@ namespace ignite
* @param name Cache name.
* @param err Error.
*/
- template<typename K, typename V>
cache::CacheImpl* CreateCache(const char* name, IgniteError& err)
{
- ignite::jni::java::JniErrorInfo jniErr;
-
- jobject cacheJavaRef = env.Get()->Context()->ProcessorCreateCache(javaRef, name, &jniErr);
-
- if (!cacheJavaRef)
- {
- IgniteError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
-
- return NULL;
- }
-
- char* name0 = common::CopyChars(name);
-
- return new cache::CacheImpl(name0, env, cacheJavaRef);
+ return GetOrCreateCache(name, err, ProcessorOp::CREATE_CACHE);
}
/**
@@ -227,9 +200,6 @@ namespace ignite
/** Environment. */
SP_IgniteEnvironment env;
- /** Native Java counterpart. */
- jobject javaRef;
-
/** Transactions implementaion. */
SP_TransactionsImpl txImpl;
@@ -237,6 +207,38 @@ namespace ignite
cluster::SP_ClusterGroupImpl prjImpl;
IGNITE_NO_COPY_ASSIGNMENT(IgniteImpl)
+
+ /**
+ * Get or create cache.
+ *
+ * @param name Cache name.
+ * @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);
+ }
+
};
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/cpp/core/include/ignite/impl/interop/interop_target.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/impl/interop/interop_target.h b/modules/platforms/cpp/core/include/ignite/impl/interop/interop_target.h
index 0384dcc..29a3a2d 100644
--- a/modules/platforms/cpp/core/include/ignite/impl/interop/interop_target.h
+++ b/modules/platforms/cpp/core/include/ignite/impl/interop/interop_target.h
@@ -60,6 +60,16 @@ namespace ignite
InteropTarget(ignite::common::concurrent::SharedPointer<IgniteEnvironment> env, jobject javaRef);
/**
+ * Constructor used to create new instance.
+ *
+ * @param env Environment.
+ * @param javaRef Reference to java object.
+ * @param javaRef Whether javaRef release in destructor should be skipped.
+ */
+ InteropTarget(ignite::common::concurrent::SharedPointer<IgniteEnvironment> env, jobject javaRef,
+ bool skipJavaRefRelease);
+
+ /**
* Destructor.
*/
virtual ~InteropTarget();
@@ -139,9 +149,10 @@ namespace ignite
*
* @param opType Type of operation.
* @param outInMem Input and output memory.
+ * @param err Error.
* @return Java object references.
*/
- jobject InStreamOutObject(int32_t opType, InteropMemory& outInMem);
+ jobject InStreamOutObject(int32_t opType, InteropMemory& outInMem, IgniteError& err);
/**
* Internal out-in operation.
@@ -190,6 +201,9 @@ namespace ignite
/** Handle to Java object. */
jobject javaRef;
+ /** javaRef release flag. */
+ bool skipJavaRefRelease;
+
IGNITE_NO_COPY_ASSIGNMENT(InteropTarget)
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/cpp/core/src/ignition.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/ignition.cpp b/modules/platforms/cpp/core/src/ignition.cpp
index e12a208..bc25b07 100644
--- a/modules/platforms/cpp/core/src/ignition.cpp
+++ b/modules/platforms/cpp/core/src/ignition.cpp
@@ -301,13 +301,13 @@ namespace ignite
stream.WriteBool(false);
stream.Synchronize();
- jobject javaRef = ctx.Get()->IgnitionStart(&springCfgPath0[0], namep, 2, mem.PointerLong(), &jniErr);
+ ctx.Get()->IgnitionStart(&springCfgPath0[0], namep, 2, mem.PointerLong(), &jniErr);
// Releasing control over environment as it is controlled by Java at this point.
// Even if the call has failed environment are going to be released by the Java.
envTarget.release();
- if (!javaRef)
+ if (!env.Get()->GetProcessor())
{
IgniteError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
@@ -323,7 +323,7 @@ namespace ignite
env.Get()->ProcessorReleaseStart();
- IgniteImpl* impl = new IgniteImpl(env, javaRef);
+ IgniteImpl* impl = new IgniteImpl(env);
return Ignite(impl);
}
@@ -383,22 +383,9 @@ namespace ignite
SharedPointer<IgniteEnvironment>* env =
static_cast<SharedPointer<IgniteEnvironment>*>(hnds->target);
- // 4. Get fresh node reference.
- jobject ref = ctx.Get()->IgnitionInstance(name0, &jniErr);
+ IgniteImpl* impl = new IgniteImpl(*env);
- if (err.GetCode() == IgniteError::IGNITE_SUCCESS) {
- if (ref)
- {
- IgniteImpl* impl = new IgniteImpl(*env, ref);
-
- res = Ignite(impl);
- }
- else
- // Error: concurrent node stop.
- err = IgniteError(IgniteError::IGNITE_ERR_GENERIC,
- "Failed to get Ignite instance because it was stopped concurrently.");
-
- }
+ res = Ignite(impl);
}
else
// Error: no node with the given name.
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/cpp/core/src/impl/ignite_environment.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/impl/ignite_environment.cpp b/modules/platforms/cpp/core/src/impl/ignite_environment.cpp
index 4e78f09..e5ce004 100644
--- a/modules/platforms/cpp/core/src/impl/ignite_environment.cpp
+++ b/modules/platforms/cpp/core/src/impl/ignite_environment.cpp
@@ -61,7 +61,30 @@ namespace ignite
ON_START = 49,
ON_STOP = 50,
COMPUTE_TASK_LOCAL_JOB_RESULT = 60,
- COMPUTE_JOB_EXECUTE_LOCAL = 61
+ COMPUTE_JOB_EXECUTE_LOCAL = 61,
+ };
+ };
+
+ /*
+ * PlatformProcessor op codes.
+ */
+ struct ProcessorOp
+ {
+ enum Type
+ {
+ GET_BINARY_PROCESSOR = 21,
+ RELEASE_START = 22
+ };
+ };
+
+ /*
+ * PlatformClusterGroup op codes.
+ */
+ struct ClusterGroupOp
+ {
+ enum Type
+ {
+ GET_COMPUTE = 31
};
};
@@ -298,7 +321,10 @@ namespace ignite
{
latch.CountDown();
- jobject binaryProc = Context()->ProcessorBinaryProcessor(proc.Get());
+ JniErrorInfo jniErr;
+
+ jobject binaryProc = Context()->TargetOutObject(proc.Get(), ProcessorOp::GET_BINARY_PROCESSOR, &jniErr);
+
metaUpdater = new BinaryTypeUpdaterImpl(*this, binaryProc);
metaMgr->SetUpdater(metaUpdater);
@@ -375,7 +401,7 @@ namespace ignite
{
JniErrorInfo jniErr;
- jobject res = ctx.Get()->ProcessorCompute(proc.Get(), proj, &jniErr);
+ jobject res = ctx.Get()->TargetOutObject(proj, ClusterGroupOp::GET_COMPUTE, &jniErr);
IgniteError err;
@@ -557,7 +583,10 @@ namespace ignite
void IgniteEnvironment::ProcessorReleaseStart()
{
if (proc.Get())
- ctx.Get()->ProcessorReleaseStart(proc.Get());
+ {
+ JniErrorInfo jniErr;
+ ctx.Get()->TargetInLongOutLong(proc.Get(), ProcessorOp::RELEASE_START, 0, &jniErr);
+ }
}
HandleRegistry& IgniteEnvironment::GetHandleRegistry()
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/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 16e954c..f7ff185 100644
--- a/modules/platforms/cpp/core/src/impl/ignite_impl.cpp
+++ b/modules/platforms/cpp/core/src/impl/ignite_impl.cpp
@@ -24,9 +24,9 @@ namespace ignite
{
namespace impl
{
- IgniteImpl::IgniteImpl(SharedPointer<IgniteEnvironment> env, jobject javaRef) :
- env(env),
- javaRef(javaRef)
+ IgniteImpl::IgniteImpl(SharedPointer<IgniteEnvironment> env) :
+ InteropTarget(env, static_cast<jobject>(env.Get()->GetProcessor()), true),
+ env(env)
{
IgniteError err;
@@ -39,11 +39,6 @@ namespace ignite
IgniteError::ThrowIfNeeded(err);
}
- IgniteImpl::~IgniteImpl()
- {
- JniContext::Release(javaRef);
- }
-
const char* IgniteImpl::GetName() const
{
return env.Get()->InstanceName();
@@ -75,14 +70,10 @@ namespace ignite
{
SP_TransactionsImpl res;
- JniErrorInfo jniErr;
-
- jobject txJavaRef = env.Get()->Context()->ProcessorTransactions(javaRef, &jniErr);
+ jobject txJavaRef = InOpObject(ProcessorOp::GET_TRANSACTIONS, err);
if (txJavaRef)
res = SP_TransactionsImpl(new transactions::TransactionsImpl(env, txJavaRef));
- else
- IgniteError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
return res;
}
@@ -93,12 +84,10 @@ namespace ignite
JniErrorInfo jniErr;
- jobject txJavaRef = env.Get()->Context()->ProcessorProjection(javaRef, &jniErr);
+ jobject clusterGroupJavaRef = InOpObject(ProcessorOp::GET_CLUSTER_GROUP, err);
- if (txJavaRef)
- res = cluster::SP_ClusterGroupImpl(new cluster::ClusterGroupImpl(env, txJavaRef));
- else
- IgniteError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+ if (clusterGroupJavaRef)
+ res = cluster::SP_ClusterGroupImpl(new cluster::ClusterGroupImpl(env, clusterGroupJavaRef));
return res;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/cpp/core/src/impl/interop/interop_target.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/impl/interop/interop_target.cpp b/modules/platforms/cpp/core/src/impl/interop/interop_target.cpp
index 7eed6f3..70db2c9 100644
--- a/modules/platforms/cpp/core/src/impl/interop/interop_target.cpp
+++ b/modules/platforms/cpp/core/src/impl/interop/interop_target.cpp
@@ -32,14 +32,24 @@ namespace ignite
namespace interop
{
InteropTarget::InteropTarget(SharedPointer<IgniteEnvironment> env, jobject javaRef) :
- env(env), javaRef(javaRef)
+ env(env), javaRef(javaRef), skipJavaRefRelease(false)
+ {
+ // No-op.
+ }
+
+ InteropTarget::InteropTarget(SharedPointer<IgniteEnvironment> env, jobject javaRef,
+ bool skipJavaRefRelease) :
+ env(env), javaRef(javaRef), skipJavaRefRelease(skipJavaRefRelease)
{
// No-op.
}
InteropTarget::~InteropTarget()
{
- JniContext::Release(javaRef);
+ if (!skipJavaRefRelease)
+ {
+ JniContext::Release(javaRef);
+ }
}
int64_t InteropTarget::WriteTo(InteropMemory* mem, InputOperation& inOp, IgniteError& err)
@@ -216,7 +226,7 @@ namespace ignite
return OperationResult::AI_ERROR;
}
- jobject InteropTarget::InStreamOutObject(int32_t opType, InteropMemory& outInMem)
+ jobject InteropTarget::InStreamOutObject(int32_t opType, InteropMemory& outInMem, IgniteError& err)
{
JniErrorInfo jniErr;
@@ -226,9 +236,7 @@ namespace ignite
{
jobject res = env.Get()->Context()->TargetInStreamOutObject(javaRef, opType, outInPtr, &jniErr);
- IgniteError err;
IgniteError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
- IgniteError::ThrowIfNeeded(err);
return res;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/cpp/jni/include/ignite/jni/exports.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/jni/include/ignite/jni/exports.h b/modules/platforms/cpp/jni/include/ignite/jni/exports.h
index 6fe91c7..ea0c32a 100644
--- a/modules/platforms/cpp/jni/include/ignite/jni/exports.h
+++ b/modules/platforms/cpp/jni/include/ignite/jni/exports.h
@@ -25,40 +25,11 @@ namespace gcj = ignite::jni::java;
extern "C" {
int IGNITE_CALL IgniteReallocate(long long memPtr, int cap);
- void* IGNITE_CALL IgniteIgnitionStart(gcj::JniContext* ctx, char* cfgPath, char* name, int factoryId, long long dataPtr);
- void* IGNITE_CALL IgniteIgnitionInstance(gcj::JniContext* ctx, char* name);
+ void IGNITE_CALL IgniteIgnitionStart(gcj::JniContext* ctx, char* cfgPath, char* name, int factoryId, long long dataPtr);
long long IGNITE_CALL IgniteIgnitionEnvironmentPointer(gcj::JniContext* ctx, char* name);
bool IGNITE_CALL IgniteIgnitionStop(gcj::JniContext* ctx, char* name, bool cancel);
void IGNITE_CALL IgniteIgnitionStopAll(gcj::JniContext* ctx, bool cancel);
- void IGNITE_CALL IgniteProcessorReleaseStart(gcj::JniContext* ctx, void* obj);
- void* IGNITE_CALL IgniteProcessorProjection(gcj::JniContext* ctx, void* obj);
- void* IGNITE_CALL IgniteProcessorCache(gcj::JniContext* ctx, void* obj, char* name);
- void* IGNITE_CALL IgniteProcessorCreateCache(gcj::JniContext* ctx, void* obj, char* name);
- void* IGNITE_CALL IgniteProcessorGetOrCreateCache(gcj::JniContext* ctx, void* obj, char* name);
- void* IGNITE_CALL IgniteProcessorCreateCacheFromConfig(gcj::JniContext* ctx, void* obj, long long memPtr);
- void* IGNITE_CALL IgniteProcessorGetOrCreateCacheFromConfig(gcj::JniContext* ctx, void* obj, long long memPtr);
- void* IGNITE_CALL IgniteProcessorCreateNearCache(gcj::JniContext* ctx, void* obj, char* name, long long memPtr);
- void* IGNITE_CALL IgniteProcessorGetOrCreateNearCache(gcj::JniContext* ctx, void* obj, char* name, long long memPtr);
- void IGNITE_CALL IgniteProcessorDestroyCache(gcj::JniContext* ctx, void* obj, char* name);
- void* IGNITE_CALL IgniteProcessorAffinity(gcj::JniContext* ctx, void* obj, char* name);
- void* IGNITE_CALL IgniteProcessorDataStreamer(gcj::JniContext* ctx, void* obj, char* name, bool keepPortable);
- void* IGNITE_CALL IgniteProcessorTransactions(gcj::JniContext* ctx, void* obj);
- void* IGNITE_CALL IgniteProcessorCompute(gcj::JniContext* ctx, void* obj, void* prj);
- void* IGNITE_CALL IgniteProcessorMessage(gcj::JniContext* ctx, void* obj, void* prj);
- void* IGNITE_CALL IgniteProcessorEvents(gcj::JniContext* ctx, void* obj, void* prj);
- void* IGNITE_CALL IgniteProcessorServices(gcj::JniContext* ctx, void* obj, void* prj);
- void* IGNITE_CALL IgniteProcessorExtensions(gcj::JniContext* ctx, void* obj);
- void* IGNITE_CALL IgniteProcessorExtension(gcj::JniContext* ctx, void* obj, int id);
- void* IGNITE_CALL IgniteProcessorAtomicLong(gcj::JniContext* ctx, void* obj, char* name, long long initVal, bool create);
- void* IGNITE_CALL IgniteProcessorAtomicSequence(gcj::JniContext* ctx, void* obj, char* name, long long initVal, bool create);
- void* IGNITE_CALL IgniteProcessorAtomicReference(gcj::JniContext* ctx, void* obj, char* name, long long memPtr, bool create);
- void IGNITE_CALL IgniteProcessorGetIgniteConfiguration(gcj::JniContext* ctx, void* obj, long long memPtr);
- void IGNITE_CALL IgniteProcessorGetCacheNames(gcj::JniContext* ctx, void* obj, long long memPtr);
- bool IGNITE_CALL IgniteProcessorLoggerIsLevelEnabled(gcj::JniContext* ctx, void* obj, int level);
- void IGNITE_CALL IgniteProcessorLoggerLog(gcj::JniContext* ctx, void* obj, int level, char* message, char* category, char* errorInfo);
- void* IGNITE_CALL IgniteProcessorBinaryProcessor(gcj::JniContext* ctx, void* obj);
-
long long IGNITE_CALL IgniteTargetInLongOutLong(gcj::JniContext* ctx, void* obj, int opType, long long memPtr);
long long IGNITE_CALL IgniteTargetInStreamOutLong(gcj::JniContext* ctx, void* obj, int opType, long long memPtr);
void IGNITE_CALL IgniteTargetInStreamOutStream(gcj::JniContext* ctx, void* obj, int opType, long long inMemPtr, long long outMemPtr);
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/cpp/jni/include/ignite/jni/java.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/jni/include/ignite/jni/java.h b/modules/platforms/cpp/jni/include/ignite/jni/java.h
index f6d7207..c170a5b 100644
--- a/modules/platforms/cpp/jni/include/ignite/jni/java.h
+++ b/modules/platforms/cpp/jni/include/ignite/jni/java.h
@@ -175,32 +175,6 @@ namespace ignite
jclass c_PlatformProcessor;
jmethodID m_PlatformProcessor_releaseStart;
- jmethodID m_PlatformProcessor_cache;
- jmethodID m_PlatformProcessor_createCache;
- jmethodID m_PlatformProcessor_getOrCreateCache;
- jmethodID m_PlatformProcessor_createCacheFromConfig;
- jmethodID m_PlatformProcessor_getOrCreateCacheFromConfig;
- jmethodID m_PlatformProcessor_createNearCache;
- jmethodID m_PlatformProcessor_getOrCreateNearCache;
- jmethodID m_PlatformProcessor_destroyCache;
- jmethodID m_PlatformProcessor_affinity;
- jmethodID m_PlatformProcessor_dataStreamer;
- jmethodID m_PlatformProcessor_transactions;
- jmethodID m_PlatformProcessor_projection;
- jmethodID m_PlatformProcessor_compute;
- jmethodID m_PlatformProcessor_message;
- jmethodID m_PlatformProcessor_events;
- jmethodID m_PlatformProcessor_services;
- jmethodID m_PlatformProcessor_extensions;
- jmethodID m_PlatformProcessor_extension;
- jmethodID m_PlatformProcessor_atomicLong;
- jmethodID m_PlatformProcessor_getIgniteConfiguration;
- jmethodID m_PlatformProcessor_getCacheNames;
- jmethodID m_PlatformProcessor_atomicSequence;
- jmethodID m_PlatformProcessor_atomicReference;
- jmethodID m_PlatformProcessor_loggerIsLevelEnabled;
- jmethodID m_PlatformProcessor_loggerLog;
- jmethodID m_PlatformProcessor_binaryProcessor;
jclass c_PlatformTarget;
jmethodID m_PlatformTarget_inLongOutLong;
@@ -334,10 +308,8 @@ namespace ignite
static void SetConsoleHandler(ConsoleWriteHandler consoleHandler);
static int RemoveConsoleHandler(ConsoleWriteHandler consoleHandler);
- jobject IgnitionStart(char* cfgPath, char* name, int factoryId, long long dataPtr);
- jobject IgnitionStart(char* cfgPath, char* name, int factoryId, long long dataPtr, JniErrorInfo* errInfo);
- jobject IgnitionInstance(char* name);
- jobject IgnitionInstance(char* name, JniErrorInfo* errInfo);
+ void IgnitionStart(char* cfgPath, char* name, int factoryId, long long dataPtr);
+ void IgnitionStart(char* cfgPath, char* name, int factoryId, long long dataPtr, JniErrorInfo* errInfo);
long long IgnitionEnvironmentPointer(char* name);
long long IgnitionEnvironmentPointer(char* name, JniErrorInfo* errInfo);
bool IgnitionStop(char* name, bool cancel);
@@ -345,41 +317,6 @@ namespace ignite
void IgnitionStopAll(bool cancel);
void IgnitionStopAll(bool cancel, JniErrorInfo* errInfo);
- void ProcessorReleaseStart(jobject obj);
- jobject ProcessorProjection(jobject obj, JniErrorInfo* errInfo = NULL);
- jobject ProcessorCache(jobject obj, const char* name);
- jobject ProcessorCache(jobject obj, const char* name, JniErrorInfo* errInfo);
- jobject ProcessorCreateCache(jobject obj, const char* name);
- jobject ProcessorCreateCache(jobject obj, const char* name, JniErrorInfo* errInfo);
- jobject ProcessorGetOrCreateCache(jobject obj, const char* name);
- jobject ProcessorGetOrCreateCache(jobject obj, const char* name, JniErrorInfo* errInfo);
- jobject ProcessorCreateCacheFromConfig(jobject obj, long long memPtr);
- jobject ProcessorCreateCacheFromConfig(jobject obj, long long memPtr, JniErrorInfo* errInfo);
- jobject ProcessorGetOrCreateCacheFromConfig(jobject obj, long long memPtr);
- jobject ProcessorGetOrCreateCacheFromConfig(jobject obj, long long memPtr, JniErrorInfo* errInfo);
- jobject ProcessorCreateNearCache(jobject obj, const char* name, long long memPtr);
- jobject ProcessorGetOrCreateNearCache(jobject obj, const char* name, long long memPtr);
- void ProcessorDestroyCache(jobject obj, const char* name);
- void ProcessorDestroyCache(jobject obj, const char* name, JniErrorInfo* errInfo);
- jobject ProcessorAffinity(jobject obj, const char* name);
- jobject ProcessorDataStreamer(jobject obj, const char* name, bool keepPortable);
- jobject ProcessorTransactions(jobject obj, JniErrorInfo* errInfo = NULL);
- jobject ProcessorCompute(jobject obj, jobject prj);
- jobject ProcessorCompute(jobject obj, jobject prj, JniErrorInfo* errInfo);
- jobject ProcessorMessage(jobject obj, jobject prj);
- jobject ProcessorEvents(jobject obj, jobject prj);
- jobject ProcessorServices(jobject obj, jobject prj);
- jobject ProcessorExtensions(jobject obj);
- jobject ProcessorExtension(jobject obj, int id);
- jobject ProcessorAtomicLong(jobject obj, char* name, long long initVal, bool create);
- jobject ProcessorAtomicSequence(jobject obj, char* name, long long initVal, bool create);
- jobject ProcessorAtomicReference(jobject obj, char* name, long long memPtr, bool create);
- void ProcessorGetIgniteConfiguration(jobject obj, long long memPtr);
- void ProcessorGetCacheNames(jobject obj, long long memPtr);
- bool ProcessorLoggerIsLevelEnabled(jobject obj, int level);
- void ProcessorLoggerLog(jobject obj, int level, char* message, char* category, char* errorInfo);
- jobject ProcessorBinaryProcessor(jobject obj);
-
long long TargetInLongOutLong(jobject obj, int type, long long memPtr, JniErrorInfo* errInfo = NULL);
long long TargetInStreamOutLong(jobject obj, int type, long long memPtr, JniErrorInfo* errInfo = NULL);
void TargetInStreamOutStream(jobject obj, int opType, long long inMemPtr, long long outMemPtr, JniErrorInfo* errInfo = NULL);
@@ -406,9 +343,6 @@ namespace ignite
void ExceptionCheck(JNIEnv* env);
void ExceptionCheck(JNIEnv* env, JniErrorInfo* errInfo);
jobject LocalToGlobal(JNIEnv* env, jobject obj);
- jobject ProcessorCache0(jobject proc, const char* name, jmethodID mthd, JniErrorInfo* errInfo);
- jobject ProcessorCacheFromConfig0(jobject proc, long long memPtr, jmethodID mthd, JniErrorInfo* errInfo);
- jobject ProcessorGetOrCreateNearCache0(jobject obj, const char* name, long long memPtr, jmethodID methodID);
};
JNIEXPORT jlong JNICALL JniCacheStoreCreate(JNIEnv *env, jclass cls, jlong envPtr, jlong memPtr);
http://git-wip-us.apache.org/repos/asf/ignite/blob/bdc9e4b9/modules/platforms/cpp/jni/project/vs/module.def
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/jni/project/vs/module.def b/modules/platforms/cpp/jni/project/vs/module.def
index 82cc41e..53e7e42 100644
--- a/modules/platforms/cpp/jni/project/vs/module.def
+++ b/modules/platforms/cpp/jni/project/vs/module.def
@@ -2,19 +2,9 @@ LIBRARY ignite.jni.dll
EXPORTS
IgniteReallocate @1
IgniteIgnitionStart @2
-IgniteIgnitionInstance @3
IgniteIgnitionEnvironmentPointer @4
IgniteIgnitionStop @5
IgniteIgnitionStopAll @6
-IgniteProcessorReleaseStart @8
-IgniteProcessorProjection @9
-IgniteProcessorCache @10
-IgniteProcessorCreateCache @11
-IgniteProcessorGetOrCreateCache @12
-IgniteProcessorAffinity @13
-IgniteProcessorDataStreamer @14
-IgniteProcessorTransactions @15
-IgniteProcessorServices @16
IgniteTargetInStreamOutObject @17
IgniteTargetInStreamOutLong @18
IgniteTargetOutStream @19
@@ -22,9 +12,6 @@ IgniteTargetInStreamOutStream @20
IgniteTargetInObjectStreamOutObjectStream @21
IgniteTargetInLongOutLong @24
IgniteTargetInStreamAsync @25
-IgniteProcessorCompute @64
-IgniteProcessorMessage @65
-IgniteProcessorEvents @66
IgniteAcquire @80
IgniteRelease @81
IgniteThrowToJava @82
@@ -33,20 +20,5 @@ IgniteCreateContext @84
IgniteDeleteContext @85
IgniteDestroyJvm @86
IgniteTargetOutObject @91
-IgniteProcessorExtension @96
-IgniteProcessorExtensions @97
-IgniteProcessorAtomicLong @98
-IgniteProcessorCreateCacheFromConfig @114
-IgniteProcessorGetOrCreateCacheFromConfig @115
-IgniteProcessorGetIgniteConfiguration @116
-IgniteProcessorDestroyCache @117
-IgniteProcessorAtomicSequence @118
-IgniteProcessorAtomicReference @128
-IgniteProcessorCreateNearCache @131
-IgniteProcessorGetOrCreateNearCache @132
-IgniteProcessorGetCacheNames @133
IgniteSetConsoleHandler @135
-IgniteRemoveConsoleHandler @136
-IgniteProcessorLoggerIsLevelEnabled @137
-IgniteProcessorLoggerLog @138
-IgniteProcessorBinaryProcessor @139
\ No newline at end of file
+IgniteRemoveConsoleHandler @136
\ No newline at end of file