http://git-wip-us.apache.org/repos/asf/ignite/blob/72ac53da/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 32c855b..4947b94 100644 --- a/modules/platforms/cpp/core/src/impl/ignite_environment.cpp +++ b/modules/platforms/cpp/core/src/impl/ignite_environment.cpp @@ -29,48 +29,66 @@ using namespace ignite::binary; namespace ignite { - namespace impl + namespace impl { /** - * OnStart callback. - * - * @param target Target environment. - * @param proc Processor instance. - * @param memPtr Memory pointer. - */ - void IGNITE_CALL OnStart(void* target, void* proc, long long memPtr) + * Callback codes. + */ + enum CallbackOp { - SharedPointer<IgniteEnvironment>* ptr = static_cast<SharedPointer<IgniteEnvironment>*>(target); - - ptr->Get()->OnStartCallback(memPtr, reinterpret_cast<jobject>(proc)); - } + REALLOC = 36, + ON_START = 49, + ON_STOP = 50 + }; /** - * OnStop callback. - * + * InLongOutLong callback. + * * @param target Target environment. + * @param type Operation type. + * @param val Value. */ - void IGNITE_CALL OnStop(void* target) + long long IGNITE_CALL InLongOutLong(void* target, int type, long long val) { - SharedPointer<IgniteEnvironment>* ptr = static_cast<SharedPointer<IgniteEnvironment>*>(target); + if (type == ON_STOP) + { + SharedPointer<IgniteEnvironment>* ptr = static_cast<SharedPointer<IgniteEnvironment>*>(target); + + delete ptr; + } - delete ptr; + return 0; } /** - * Memory reallocate callback. - * + * InLongOutLong callback. + * * @param target Target environment. - * @param memPtr Memory pointer. - * @param cap Required capasity. + * @param type Operation type. + * @param val1 Value1. + * @param val2 Value2. + * @param val3 Value3. + * @param arg Object arg. */ - void IGNITE_CALL MemoryReallocate(void* target, long long memPtr, int cap) + long long IGNITE_CALL InLongLongLongObjectOutLong(void* target, int type, long long val1, long long val2, + long long val3, void* arg) { - SharedPointer<IgniteEnvironment>* env = static_cast<SharedPointer<IgniteEnvironment>*>(target); + if (type == ON_START) + { + SharedPointer<IgniteEnvironment>* ptr = static_cast<SharedPointer<IgniteEnvironment>*>(target); + + ptr->Get()->OnStartCallback(val1, reinterpret_cast<jobject>(arg)); + } + else if (type == REALLOC) + { + SharedPointer<IgniteEnvironment>* env = static_cast<SharedPointer<IgniteEnvironment>*>(target); - SharedPointer<InteropMemory> mem = env->Get()->GetMemory(memPtr); + SharedPointer<InteropMemory> mem = env->Get()->GetMemory(val1); - mem.Get()->Reallocate(cap); + mem.Get()->Reallocate(static_cast<int32_t>(val2)); + } + + return 0; } IgniteEnvironment::IgniteEnvironment() : ctx(SharedPointer<JniContext>()), latch(new SingleLatch), name(0), @@ -93,10 +111,8 @@ namespace ignite hnds.target = target; - hnds.onStart = OnStart; - hnds.onStop = OnStop; - - hnds.memRealloc = MemoryReallocate; + hnds.inLongOutLong = InLongOutLong; + hnds.inLongLongLongObjectOutLong = InLongLongLongObjectOutLong; hnds.error = 0;
http://git-wip-us.apache.org/repos/asf/ignite/blob/72ac53da/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 97e4412..442cc10 100644 --- a/modules/platforms/cpp/jni/include/ignite/jni/java.h +++ b/modules/platforms/cpp/jni/include/ignite/jni/java.h @@ -110,6 +110,9 @@ namespace ignite typedef void(JNICALL *LoggerLogHandler)(void* target, int level, const char* messageChars, int messageCharsLen, const char* categoryChars, int categoryCharsLen, const char* errorInfoChars, int errorInfoCharsLen, long long memPtr); typedef bool(JNICALL *LoggerIsLevelEnabledHandler)(void* target, int level); + + typedef long long(JNICALL *InLongOutLongHandler)(void* target, int type, long long val); + typedef long long(JNICALL *InLongLongLongObjectOutLongHandler)(void* target, int type, long long val1, long long val2, long long val3, void* arg); /** * JNI handlers holder. @@ -117,86 +120,13 @@ namespace ignite struct JniHandlers { void* target; - CacheStoreCreateHandler cacheStoreCreate; - CacheStoreInvokeHandler cacheStoreInvoke; - CacheStoreDestroyHandler cacheStoreDestroy; - CacheStoreSessionCreateHandler cacheStoreSessionCreate; - - CacheEntryFilterCreateHandler cacheEntryFilterCreate; - CacheEntryFilterApplyHandler cacheEntryFilterApply; - CacheEntryFilterDestroyHandler cacheEntryFilterDestroy; - - CacheInvokeHandler cacheInvoke; - - ComputeTaskMapHandler computeTaskMap; - ComputeTaskJobResultHandler computeTaskJobRes; - ComputeTaskReduceHandler computeTaskReduce; - ComputeTaskCompleteHandler computeTaskComplete; - ComputeJobSerializeHandler computeJobSerialize; - ComputeJobCreateHandler computeJobCreate; - ComputeJobExecuteHandler computeJobExec; - ComputeJobCancelHandler computeJobCancel; - ComputeJobDestroyHandler computeJobDestroy; - - ContinuousQueryListenerApplyHandler contQryLsnrApply; - ContinuousQueryFilterCreateHandler contQryFilterCreate; - ContinuousQueryFilterApplyHandler contQryFilterApply; - ContinuousQueryFilterReleaseHandler contQryFilterRelease; - - DataStreamerTopologyUpdateHandler dataStreamerTopologyUpdate; - DataStreamerStreamReceiverInvokeHandler streamReceiverInvoke; - - FutureByteResultHandler futByteRes; - FutureBoolResultHandler futBoolRes; - FutureShortResultHandler futShortRes; - FutureCharResultHandler futCharRes; - FutureIntResultHandler futIntRes; - FutureFloatResultHandler futFloatRes; - FutureLongResultHandler futLongRes; - FutureDoubleResultHandler futDoubleRes; - FutureObjectResultHandler futObjRes; - FutureNullResultHandler futNullRes; - FutureErrorHandler futErr; - - LifecycleEventHandler lifecycleEvt; - - MemoryReallocateHandler memRealloc; - - MessagingFilterCreateHandler messagingFilterCreate; - MessagingFilterApplyHandler messagingFilterApply; - MessagingFilterDestroyHandler messagingFilterDestroy; - - EventFilterCreateHandler eventFilterCreate; - EventFilterApplyHandler eventFilterApply; - EventFilterDestroyHandler eventFilterDestroy; - - ServiceInitHandler serviceInit; - ServiceExecuteHandler serviceExecute; - ServiceCancelHandler serviceCancel; - ServiceInvokeMethodHandler serviceInvokeMethod; - - ClusterNodeFilterApplyHandler clusterNodeFilterApply; - - NodeInfoHandler nodeInfo; - - OnStartHandler onStart; - OnStopHandler onStop; ErrorHandler error; - ExtensionCallbackInLongOutLongHandler extensionCallbackInLongOutLong; - ExtensionCallbackInLongLongOutLongHandler extensionCallbackInLongLongOutLong; - - OnClientDisconnectedHandler onClientDisconnected; - OnClientReconnectedHandler onClientReconnected; - - AffinityFunctionInitHandler affinityFunctionInit; - AffinityFunctionPartitionHandler affinityFunctionPartition; - AffinityFunctionAssignPartitionsHandler affinityFunctionAssignPartitions; - AffinityFunctionRemoveNodeHandler affinityFunctionRemoveNode; - AffinityFunctionDestroyHandler affinityFunctionDestroy; - LoggerLogHandler loggerLog; LoggerIsLevelEnabledHandler loggerIsLevelEnabled; + + InLongOutLongHandler inLongOutLong; + InLongLongLongObjectOutLongHandler inLongLongLongObjectOutLong; }; /** @@ -560,6 +490,9 @@ namespace ignite JNIEXPORT void JNICALL JniLoggerLog(JNIEnv *env, jclass cls, jlong envPtr, jint level, jstring message, jstring category, jstring errorInfo, jlong memPtr); JNIEXPORT jboolean JNICALL JniLoggerIsLevelEnabled(JNIEnv *env, jclass cls, jlong envPtr, jint level); + + JNIEXPORT jlong JNICALL JniInLongOutLong(JNIEnv *env, jclass cls, jlong envPtr, jint type, jlong val); + JNIEXPORT jlong JNICALL JniInLongLongLongObjectOutLong(JNIEnv *env, jclass cls, jlong envPtr, jint type, jlong val1, jlong val2, jlong val3, jobject arg); } } } http://git-wip-us.apache.org/repos/asf/ignite/blob/72ac53da/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 fb56dca..9effaf9 100644 --- a/modules/platforms/cpp/jni/project/vs/module.def +++ b/modules/platforms/cpp/jni/project/vs/module.def @@ -26,8 +26,8 @@ IgniteTargetInLongOutLong @24 IgniteProcessorCompute @64 IgniteProcessorMessage @65 IgniteProcessorEvents @66 -IgniteAcquire @80 -IgniteRelease @81 +IgniteAcquire @80 +IgniteRelease @81 IgniteThrowToJava @82 IgniteHandlersSize @83 IgniteCreateContext @84 http://git-wip-us.apache.org/repos/asf/ignite/blob/72ac53da/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 9626fbb..698263d 100644 --- a/modules/platforms/cpp/jni/src/java.cpp +++ b/modules/platforms/cpp/jni/src/java.cpp @@ -15,6 +15,7 @@ * limitations under the License. */ +// ReSharper disable once CppUnusedIncludeDirective #include <cstring> // needed only on linux #include <string> #include <exception> @@ -315,6 +316,9 @@ namespace ignite 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); + JniMethod M_PLATFORM_CALLBACK_UTILS_IN_LONG_LONG_LONG_OBJECT_OUT_LONG = JniMethod("inLongLongLongObjectOutLong", "(JIJJJLjava/lang/Object;)J", true); + const char* C_PLATFORM_UTILS = "org/apache/ignite/internal/processors/platform/utils/PlatformUtils"; JniMethod M_PLATFORM_UTILS_REALLOC = JniMethod("reallocate", "(JI)V", true); JniMethod M_PLATFORM_UTILS_ERR_DATA = JniMethod("errorData", "(Ljava/lang/Throwable;)[B", true); @@ -611,93 +615,18 @@ namespace ignite void RegisterNatives(JNIEnv* env) { { - JNINativeMethod methods[62]; + JNINativeMethod methods[5]; int idx = 0; - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CACHE_STORE_CREATE, reinterpret_cast<void*>(JniCacheStoreCreate)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CACHE_STORE_INVOKE, reinterpret_cast<void*>(JniCacheStoreInvoke)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CACHE_STORE_DESTROY, reinterpret_cast<void*>(JniCacheStoreDestroy)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CACHE_STORE_SESSION_CREATE, reinterpret_cast<void*>(JniCacheStoreSessionCreate)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CACHE_ENTRY_FILTER_CREATE, reinterpret_cast<void*>(JniCacheEntryFilterCreate)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CACHE_ENTRY_FILTER_APPLY, reinterpret_cast<void*>(JniCacheEntryFilterApply)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CACHE_ENTRY_FILTER_DESTROY, reinterpret_cast<void*>(JniCacheEntryFilterDestroy)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CACHE_INVOKE, reinterpret_cast<void*>(JniCacheInvoke)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_COMPUTE_TASK_MAP, reinterpret_cast<void*>(JniComputeTaskMap)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_COMPUTE_TASK_JOB_RESULT, reinterpret_cast<void*>(JniComputeTaskJobResult)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_COMPUTE_TASK_REDUCE, reinterpret_cast<void*>(JniComputeTaskReduce)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_COMPUTE_TASK_COMPLETE, reinterpret_cast<void*>(JniComputeTaskComplete)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_COMPUTE_JOB_SERIALIZE, reinterpret_cast<void*>(JniComputeJobSerialize)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_COMPUTE_JOB_CREATE, reinterpret_cast<void*>(JniComputeJobCreate)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_COMPUTE_JOB_EXECUTE, reinterpret_cast<void*>(JniComputeJobExecute)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_COMPUTE_JOB_DESTROY, reinterpret_cast<void*>(JniComputeJobDestroy)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_COMPUTE_JOB_CANCEL, reinterpret_cast<void*>(JniComputeJobCancel)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CONTINUOUS_QUERY_LSNR_APPLY, reinterpret_cast<void*>(JniContinuousQueryListenerApply)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CONTINUOUS_QUERY_FILTER_CREATE, reinterpret_cast<void*>(JniContinuousQueryFilterCreate)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CONTINUOUS_QUERY_FILTER_EVAL, reinterpret_cast<void*>(JniContinuousQueryFilterApply)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CONTINUOUS_QUERY_FILTER_RELEASE, reinterpret_cast<void*>(JniContinuousQueryFilterRelease)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_DATA_STREAMER_TOPOLOGY_UPDATE, reinterpret_cast<void*>(JniDataStreamerTopologyUpdate)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_DATA_STREAMER_STREAM_RECEIVER_INVOKE, reinterpret_cast<void*>(JniDataStreamerStreamReceiverInvoke)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_FUTURE_BYTE_RES, reinterpret_cast<void*>(JniFutureByteResult)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_FUTURE_BOOL_RES, reinterpret_cast<void*>(JniFutureBoolResult)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_FUTURE_SHORT_RES, reinterpret_cast<void*>(JniFutureShortResult)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_FUTURE_CHAR_RES, reinterpret_cast<void*>(JniFutureCharResult)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_FUTURE_INT_RES, reinterpret_cast<void*>(JniFutureIntResult)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_FUTURE_FLOAT_RES, reinterpret_cast<void*>(JniFutureFloatResult)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_FUTURE_LONG_RES, reinterpret_cast<void*>(JniFutureLongResult)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_FUTURE_DOUBLE_RES, reinterpret_cast<void*>(JniFutureDoubleResult)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_FUTURE_OBJ_RES, reinterpret_cast<void*>(JniFutureObjectResult)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_FUTURE_NULL_RES, reinterpret_cast<void*>(JniFutureNullResult)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_FUTURE_ERR, reinterpret_cast<void*>(JniFutureError)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_LIFECYCLE_EVENT, reinterpret_cast<void*>(JniLifecycleEvent)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_MESSAGING_FILTER_CREATE, reinterpret_cast<void*>(JniMessagingFilterCreate)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_MESSAGING_FILTER_APPLY, reinterpret_cast<void*>(JniMessagingFilterApply)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_MESSAGING_FILTER_DESTROY, reinterpret_cast<void*>(JniMessagingFilterDestroy)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_EVENT_FILTER_CREATE, reinterpret_cast<void*>(JniEventFilterCreate)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_EVENT_FILTER_APPLY, reinterpret_cast<void*>(JniEventFilterApply)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_EVENT_FILTER_DESTROY, reinterpret_cast<void*>(JniEventFilterDestroy)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_SERVICE_INIT, reinterpret_cast<void*>(JniServiceInit)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_SERVICE_EXECUTE, reinterpret_cast<void*>(JniServiceExecute)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_SERVICE_CANCEL, reinterpret_cast<void*>(JniServiceCancel)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_SERVICE_INVOKE_METHOD, reinterpret_cast<void*>(JniServiceInvokeMethod)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CLUSTER_NODE_FILTER_APPLY, reinterpret_cast<void*>(JniClusterNodeFilterApply)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_NODE_INFO, reinterpret_cast<void*>(JniNodeInfo)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_MEMORY_REALLOCATE, reinterpret_cast<void*>(JniMemoryReallocate)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_ON_START, reinterpret_cast<void*>(JniOnStart)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_ON_STOP, reinterpret_cast<void*>(JniOnStop)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_EXTENSION_CALLBACK_IN_LONG_OUT_LONG, reinterpret_cast<void*>(JniExtensionCallbackInLongOutLong)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_EXTENSION_CALLBACK_IN_LONG_LONG_OUT_LONG, reinterpret_cast<void*>(JniExtensionCallbackInLongLongOutLong)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_ON_CLIENT_DISCONNECTED, reinterpret_cast<void*>(JniOnClientDisconnected)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_ON_CLIENT_RECONNECTED, reinterpret_cast<void*>(JniOnClientReconnected)); - - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_INIT, reinterpret_cast<void*>(JniAffinityFunctionInit)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_PARTITION, reinterpret_cast<void*>(JniAffinityFunctionPartition)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_ASSIGN_PARTITIONS, reinterpret_cast<void*>(JniAffinityFunctionAssignPartitions)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_REMOVE_NODE, reinterpret_cast<void*>(JniAffinityFunctionRemoveNode)); - AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_DESTROY, reinterpret_cast<void*>(JniAffinityFunctionDestroy)); AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CONSOLE_WRITE, reinterpret_cast<void*>(JniConsoleWrite)); AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_LOGGER_LOG, reinterpret_cast<void*>(JniLoggerLog)); AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_LOGGER_IS_LEVEL_ENABLED, reinterpret_cast<void*>(JniLoggerIsLevelEnabled)); + AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_IN_LONG_OUT_LONG, reinterpret_cast<void*>(JniInLongOutLong)); + AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_IN_LONG_LONG_LONG_OBJECT_OUT_LONG, reinterpret_cast<void*>(JniInLongLongLongObjectOutLong)); + jint res = env->RegisterNatives(FindClass(env, C_PLATFORM_CALLBACK_UTILS), methods, idx); if (res != JNI_OK) @@ -1617,250 +1546,6 @@ namespace ignite return NULL; } - JNIEXPORT jlong JNICALL JniCacheStoreCreate(JNIEnv *env, jclass cls, jlong envPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, CacheStoreCreateHandler, cacheStoreCreate, memPtr); - } - - JNIEXPORT jint JNICALL JniCacheStoreInvoke(JNIEnv *env, jclass cls, jlong envPtr, jlong objPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, CacheStoreInvokeHandler, cacheStoreInvoke, objPtr, memPtr); - } - - JNIEXPORT void JNICALL JniCacheStoreDestroy(JNIEnv *env, jclass cls, jlong envPtr, jlong objPtr) { - IGNITE_SAFE_PROC(env, envPtr, CacheStoreDestroyHandler, cacheStoreDestroy, objPtr); - } - - JNIEXPORT jlong JNICALL JniCacheStoreSessionCreate(JNIEnv *env, jclass cls, jlong envPtr, jlong storePtr) { - IGNITE_SAFE_FUNC(env, envPtr, CacheStoreSessionCreateHandler, cacheStoreSessionCreate, storePtr); - } - - JNIEXPORT jlong JNICALL JniCacheEntryFilterCreate(JNIEnv *env, jclass cls, jlong envPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, CacheEntryFilterCreateHandler, cacheEntryFilterCreate, memPtr); - } - - JNIEXPORT jint JNICALL JniCacheEntryFilterApply(JNIEnv *env, jclass cls, jlong envPtr, jlong objPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, CacheEntryFilterApplyHandler, cacheEntryFilterApply, objPtr, memPtr); - } - - JNIEXPORT void JNICALL JniCacheEntryFilterDestroy(JNIEnv *env, jclass cls, jlong envPtr, jlong objPtr) { - IGNITE_SAFE_PROC(env, envPtr, CacheEntryFilterDestroyHandler, cacheEntryFilterDestroy, objPtr); - } - - JNIEXPORT void JNICALL JniCacheInvoke(JNIEnv *env, jclass cls, jlong envPtr, jlong inMemPtr, jlong outMemPtr) { - IGNITE_SAFE_PROC(env, envPtr, CacheInvokeHandler, cacheInvoke, inMemPtr, outMemPtr); - } - - JNIEXPORT void JNICALL JniComputeTaskMap(JNIEnv *env, jclass cls, jlong envPtr, jlong taskPtr, jlong inMemPtr, jlong outMemPtr) { - IGNITE_SAFE_PROC(env, envPtr, ComputeTaskMapHandler, computeTaskMap, taskPtr, inMemPtr, outMemPtr); - } - - JNIEXPORT jint JNICALL JniComputeTaskJobResult(JNIEnv *env, jclass cls, jlong envPtr, jlong taskPtr, jlong jobPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, ComputeTaskJobResultHandler, computeTaskJobRes, taskPtr, jobPtr, memPtr); - } - - JNIEXPORT void JNICALL JniComputeTaskReduce(JNIEnv *env, jclass cls, jlong envPtr, jlong taskPtr) { - IGNITE_SAFE_PROC(env, envPtr, ComputeTaskReduceHandler, computeTaskReduce, taskPtr); - } - - JNIEXPORT void JNICALL JniComputeTaskComplete(JNIEnv *env, jclass cls, jlong envPtr, jlong taskPtr, jlong memPtr) { - IGNITE_SAFE_PROC(env, envPtr, ComputeTaskCompleteHandler, computeTaskComplete, taskPtr, memPtr); - } - - JNIEXPORT jint JNICALL JniComputeJobSerialize(JNIEnv *env, jclass cls, jlong envPtr, jlong jobPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, ComputeJobSerializeHandler, computeJobSerialize, jobPtr, memPtr); - } - - JNIEXPORT jlong JNICALL JniComputeJobCreate(JNIEnv *env, jclass cls, jlong envPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, ComputeJobCreateHandler, computeJobCreate, memPtr); - } - - JNIEXPORT void JNICALL JniComputeJobExecute(JNIEnv *env, jclass cls, jlong envPtr, jlong jobPtr, jint cancel, jlong memPtr) { - IGNITE_SAFE_PROC(env, envPtr, ComputeJobExecuteHandler, computeJobExec, jobPtr, cancel, memPtr); - } - - JNIEXPORT void JNICALL JniComputeJobCancel(JNIEnv *env, jclass cls, jlong envPtr, jlong jobPtr) { - IGNITE_SAFE_PROC(env, envPtr, ComputeJobCancelHandler, computeJobCancel, jobPtr); - } - - JNIEXPORT void JNICALL JniComputeJobDestroy(JNIEnv *env, jclass cls, jlong envPtr, jlong jobPtr) { - IGNITE_SAFE_PROC(env, envPtr, ComputeJobDestroyHandler, computeJobDestroy, jobPtr); - } - - JNIEXPORT void JNICALL JniContinuousQueryListenerApply(JNIEnv *env, jclass cls, jlong envPtr, jlong cbPtr, jlong memPtr) { - IGNITE_SAFE_PROC(env, envPtr, ContinuousQueryListenerApplyHandler, contQryLsnrApply, cbPtr, memPtr); - } - - JNIEXPORT jlong JNICALL JniContinuousQueryFilterCreate(JNIEnv *env, jclass cls, jlong envPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, ContinuousQueryFilterCreateHandler, contQryFilterCreate, memPtr); - } - - JNIEXPORT jint JNICALL JniContinuousQueryFilterApply(JNIEnv *env, jclass cls, jlong envPtr, jlong filterPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, ContinuousQueryFilterApplyHandler, contQryFilterApply, filterPtr, memPtr); - } - - JNIEXPORT void JNICALL JniContinuousQueryFilterRelease(JNIEnv *env, jclass cls, jlong envPtr, jlong filterPtr) { - IGNITE_SAFE_PROC(env, envPtr, ContinuousQueryFilterReleaseHandler, contQryFilterRelease, filterPtr); - } - - JNIEXPORT void JNICALL JniDataStreamerTopologyUpdate(JNIEnv *env, jclass cls, jlong envPtr, jlong ldrPtr, jlong topVer, jint topSize) { - IGNITE_SAFE_PROC(env, envPtr, DataStreamerTopologyUpdateHandler, dataStreamerTopologyUpdate, ldrPtr, topVer, topSize); - } - - JNIEXPORT void JNICALL JniDataStreamerStreamReceiverInvoke(JNIEnv *env, jclass cls, jlong envPtr, jlong ptr, jobject cache, jlong memPtr, jboolean keepPortable) { - jobject cache0 = env->NewGlobalRef(cache); - - if (cache0) - { - JniGlobalRefGuard guard(env, cache0); - - IGNITE_SAFE_PROC(env, envPtr, DataStreamerStreamReceiverInvokeHandler, streamReceiverInvoke, ptr, cache0, memPtr, keepPortable); - } - } - - JNIEXPORT void JNICALL JniFutureByteResult(JNIEnv *env, jclass cls, jlong envPtr, jlong futPtr, jint res) { - IGNITE_SAFE_PROC(env, envPtr, FutureByteResultHandler, futByteRes, futPtr, res); - } - - JNIEXPORT void JNICALL JniFutureBoolResult(JNIEnv *env, jclass cls, jlong envPtr, jlong futPtr, jint res) { - IGNITE_SAFE_PROC(env, envPtr, FutureBoolResultHandler, futBoolRes, futPtr, res); - } - - JNIEXPORT void JNICALL JniFutureShortResult(JNIEnv *env, jclass cls, jlong envPtr, jlong futPtr, jint res) { - IGNITE_SAFE_PROC(env, envPtr, FutureShortResultHandler, futShortRes, futPtr, res); - } - - JNIEXPORT void JNICALL JniFutureCharResult(JNIEnv *env, jclass cls, jlong envPtr, jlong futPtr, jint res) { - IGNITE_SAFE_PROC(env, envPtr, FutureCharResultHandler, futCharRes, futPtr, res); - } - - JNIEXPORT void JNICALL JniFutureIntResult(JNIEnv *env, jclass cls, jlong envPtr, jlong futPtr, jint res) { - IGNITE_SAFE_PROC(env, envPtr, FutureIntResultHandler, futIntRes, futPtr, res); - } - - JNIEXPORT void JNICALL JniFutureFloatResult(JNIEnv *env, jclass cls, jlong envPtr, jlong futPtr, jfloat res) { - IGNITE_SAFE_PROC(env, envPtr, FutureFloatResultHandler, futFloatRes, futPtr, res); - } - - JNIEXPORT void JNICALL JniFutureLongResult(JNIEnv *env, jclass cls, jlong envPtr, jlong futPtr, jlong res) { - IGNITE_SAFE_PROC(env, envPtr, FutureLongResultHandler, futLongRes, futPtr, res); - } - - JNIEXPORT void JNICALL JniFutureDoubleResult(JNIEnv *env, jclass cls, jlong envPtr, jlong futPtr, jdouble res) { - IGNITE_SAFE_PROC(env, envPtr, FutureDoubleResultHandler, futDoubleRes, futPtr, res); - } - - JNIEXPORT void JNICALL JniFutureObjectResult(JNIEnv *env, jclass cls, jlong envPtr, jlong futPtr, jlong memPtr) { - IGNITE_SAFE_PROC(env, envPtr, FutureObjectResultHandler, futObjRes, futPtr, memPtr); - } - - JNIEXPORT void JNICALL JniFutureNullResult(JNIEnv *env, jclass cls, jlong envPtr, jlong futPtr) { - IGNITE_SAFE_PROC(env, envPtr, FutureNullResultHandler, futNullRes, futPtr); - } - - JNIEXPORT void JNICALL JniFutureError(JNIEnv *env, jclass cls, jlong envPtr, jlong futPtr, jlong memPtr) { - IGNITE_SAFE_PROC(env, envPtr, FutureErrorHandler, futErr, futPtr, memPtr); - } - - JNIEXPORT void JNICALL JniLifecycleEvent(JNIEnv *env, jclass cls, jlong envPtr, jlong ptr, jint evt) { - IGNITE_SAFE_PROC(env, envPtr, LifecycleEventHandler, lifecycleEvt, ptr, evt); - } - - JNIEXPORT void JNICALL JniMemoryReallocate(JNIEnv *env, jclass cls, jlong envPtr, jlong memPtr, jint cap) { - IGNITE_SAFE_PROC(env, envPtr, MemoryReallocateHandler, memRealloc, memPtr, cap); - } - - JNIEXPORT jlong JNICALL JniMessagingFilterCreate(JNIEnv *env, jclass cls, jlong envPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, MessagingFilterCreateHandler, messagingFilterCreate, memPtr); - } - - JNIEXPORT jint JNICALL JniMessagingFilterApply(JNIEnv *env, jclass cls, jlong envPtr, jlong ptr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, MessagingFilterApplyHandler, messagingFilterApply, ptr, memPtr); - } - - JNIEXPORT void JNICALL JniMessagingFilterDestroy(JNIEnv *env, jclass cls, jlong envPtr, jlong ptr) { - IGNITE_SAFE_PROC(env, envPtr, MessagingFilterDestroyHandler, messagingFilterDestroy, ptr); - } - - JNIEXPORT jlong JNICALL JniEventFilterCreate(JNIEnv *env, jclass cls, jlong envPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, EventFilterCreateHandler, eventFilterCreate, memPtr); - } - - JNIEXPORT jint JNICALL JniEventFilterApply(JNIEnv *env, jclass cls, jlong envPtr, jlong ptr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, EventFilterApplyHandler, eventFilterApply, ptr, memPtr); - } - - JNIEXPORT void JNICALL JniEventFilterDestroy(JNIEnv *env, jclass cls, jlong envPtr, jlong ptr) { - IGNITE_SAFE_PROC(env, envPtr, EventFilterDestroyHandler, eventFilterDestroy, ptr); - } - - JNIEXPORT jlong JNICALL JniServiceInit(JNIEnv *env, jclass cls, jlong envPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, ServiceInitHandler, serviceInit, memPtr); - } - - JNIEXPORT void JNICALL JniServiceExecute(JNIEnv *env, jclass cls, jlong envPtr, jlong svcPtr, jlong memPtr) { - IGNITE_SAFE_PROC(env, envPtr, ServiceExecuteHandler, serviceExecute, svcPtr, memPtr); - } - - JNIEXPORT void JNICALL JniServiceCancel(JNIEnv *env, jclass cls, jlong envPtr, jlong svcPtr, jlong memPtr) { - IGNITE_SAFE_PROC(env, envPtr, ServiceCancelHandler, serviceCancel, svcPtr, memPtr); - } - - JNIEXPORT void JNICALL JniServiceInvokeMethod(JNIEnv *env, jclass cls, jlong envPtr, jlong svcPtr, jlong inMemPtr, jlong outMemPtr) { - IGNITE_SAFE_PROC(env, envPtr, ServiceInvokeMethodHandler, serviceInvokeMethod, svcPtr, inMemPtr, outMemPtr); - } - - JNIEXPORT jint JNICALL JniClusterNodeFilterApply(JNIEnv *env, jclass cls, jlong envPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, ClusterNodeFilterApplyHandler, clusterNodeFilterApply, memPtr); - } - - JNIEXPORT jlong JNICALL JniNodeInfo(JNIEnv *env, jclass cls, jlong envPtr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, NodeInfoHandler, nodeInfo, memPtr); - } - - JNIEXPORT void JNICALL JniOnStart(JNIEnv *env, jclass cls, jlong envPtr, jobject proc, jlong memPtr) { - IGNITE_SAFE_PROC(env, envPtr, OnStartHandler, onStart, proc, memPtr); - } - - JNIEXPORT void JNICALL JniOnStop(JNIEnv *env, jclass cls, jlong envPtr) { - IGNITE_SAFE_PROC_NO_ARG(env, envPtr, OnStopHandler, onStop); - } - - JNIEXPORT jlong JNICALL JniExtensionCallbackInLongOutLong(JNIEnv *env, jclass cls, jlong envPtr, jint typ, jlong arg1) { - IGNITE_SAFE_FUNC(env, envPtr, ExtensionCallbackInLongOutLongHandler, extensionCallbackInLongOutLong, typ, arg1); - } - - JNIEXPORT jlong JNICALL JniExtensionCallbackInLongLongOutLong(JNIEnv *env, jclass cls, jlong envPtr, jint typ, jlong arg1, jlong arg2) { - IGNITE_SAFE_FUNC(env, envPtr, ExtensionCallbackInLongLongOutLongHandler, extensionCallbackInLongLongOutLong, typ, arg1, arg2); - } - - JNIEXPORT void JNICALL JniOnClientDisconnected(JNIEnv *env, jclass cls, jlong envPtr) { - IGNITE_SAFE_PROC_NO_ARG(env, envPtr, OnClientDisconnectedHandler, onClientDisconnected); - } - - JNIEXPORT void JNICALL JniOnClientReconnected(JNIEnv *env, jclass cls, jlong envPtr, jboolean clusterRestarted) { - IGNITE_SAFE_PROC(env, envPtr, OnClientReconnectedHandler, onClientReconnected, clusterRestarted); - } - - JNIEXPORT jlong JNICALL JniAffinityFunctionInit(JNIEnv *env, jclass cls, jlong envPtr, jlong memPtr, jobject baseFunc) { - void* baseFuncRef = baseFunc ? env->NewGlobalRef(baseFunc) : 0; - IGNITE_SAFE_FUNC(env, envPtr, AffinityFunctionInitHandler, affinityFunctionInit, memPtr, baseFuncRef); - } - - JNIEXPORT jint JNICALL JniAffinityFunctionPartition(JNIEnv *env, jclass cls, jlong envPtr, jlong ptr, jlong memPtr) { - IGNITE_SAFE_FUNC(env, envPtr, AffinityFunctionPartitionHandler, affinityFunctionPartition, ptr, memPtr); - } - - JNIEXPORT void JNICALL JniAffinityFunctionAssignPartitions(JNIEnv *env, jclass cls, jlong envPtr, jlong ptr, jlong inMemPtr, jlong outMemPtr) { - IGNITE_SAFE_PROC(env, envPtr, AffinityFunctionAssignPartitionsHandler, affinityFunctionAssignPartitions, ptr, inMemPtr, outMemPtr); - } - - JNIEXPORT void JNICALL JniAffinityFunctionRemoveNode(JNIEnv *env, jclass cls, jlong envPtr, jlong ptr, jlong memPtr) { - IGNITE_SAFE_PROC(env, envPtr, AffinityFunctionRemoveNodeHandler, affinityFunctionRemoveNode, ptr, memPtr); - } - - JNIEXPORT void JNICALL JniAffinityFunctionDestroy(JNIEnv *env, jclass cls, jlong envPtr, jlong ptr) { - IGNITE_SAFE_PROC(env, envPtr, AffinityFunctionDestroyHandler, affinityFunctionDestroy, ptr); - } - JNIEXPORT void JNICALL JniConsoleWrite(JNIEnv *env, jclass cls, jstring str, jboolean isErr) { CONSOLE_LOCK.Enter(); @@ -1903,6 +1588,14 @@ namespace ignite JNIEXPORT jboolean JNICALL JniLoggerIsLevelEnabled(JNIEnv *env, jclass cls, jlong envPtr, jint level) { IGNITE_SAFE_FUNC(env, envPtr, LoggerIsLevelEnabledHandler, loggerIsLevelEnabled, level); } + + JNIEXPORT jlong JNICALL JniInLongOutLong(JNIEnv *env, jclass cls, jlong envPtr, jint type, jlong val) { + IGNITE_SAFE_FUNC(env, envPtr, InLongOutLongHandler, inLongOutLong, type, val); + } + + JNIEXPORT jlong JNICALL JniInLongLongLongObjectOutLong(JNIEnv *env, jclass cls, jlong envPtr, jint type, jlong val1, jlong val2, jlong val3, jobject arg) { + IGNITE_SAFE_FUNC(env, envPtr, InLongLongLongObjectOutLongHandler, inLongLongLongObjectOutLong, type, val1, val2, val3, arg); + } } } } http://git-wip-us.apache.org/repos/asf/ignite/blob/72ac53da/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs index dcddfdb..c4d4279 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs @@ -438,7 +438,8 @@ namespace Apache.Ignite.Core.Tests.Services var ex = Assert.Throws<IgniteException>(() => Services.DeployMultiple(SvcName, svc, Grids.Length, 1)); Assert.AreEqual("Expected exception", ex.Message); Assert.IsNotNull(ex.InnerException); - Assert.IsTrue(ex.InnerException.Message.Contains("PlatformCallbackUtils.serviceInit(Native Method)")); + Assert.IsTrue(ex.InnerException.Message.Contains("PlatformCallbackGateway.serviceInit"), + ex.InnerException.Message); var svc0 = Services.GetService<TestIgniteServiceSerializable>(SvcName); http://git-wip-us.apache.org/repos/asf/ignite/blob/72ac53da/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj b/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj index 6421b8c..b2db0a7 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj +++ b/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj @@ -429,6 +429,7 @@ <Compile Include="Impl\Unmanaged\IgniteJniNativeMethods.cs" /> <Compile Include="Impl\Unmanaged\IUnmanagedTarget.cs" /> <Compile Include="Impl\Unmanaged\UnmanagedCallbackHandlers.cs" /> + <Compile Include="Impl\Unmanaged\UnmanagedCallbackOp.cs" /> <Compile Include="Impl\Unmanaged\UnmanagedCallbacks.cs" /> <Compile Include="Impl\Unmanaged\UnmanagedContext.cs" /> <Compile Include="Impl\Unmanaged\UnmanagedNonReleaseableTarget.cs" /> http://git-wip-us.apache.org/repos/asf/ignite/blob/72ac53da/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryUtils.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryUtils.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryUtils.cs index cc5d8a1..e6a3716 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryUtils.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryUtils.cs @@ -1961,6 +1961,22 @@ namespace Apache.Ignite.Core.Impl.Binary } /// <summary> + /// Reinterprets int bits as a float. + /// </summary> + public static unsafe float IntToFloatBits(int val) + { + return *(float*) &val; + } + + /// <summary> + /// Reinterprets long bits as a double. + /// </summary> + public static unsafe double LongToDoubleBits(long val) + { + return *(double*) &val; + } + + /// <summary> /// Creates and instance from the type name in reader. /// </summary> private static T CreateInstance<T>(BinaryReader reader) http://git-wip-us.apache.org/repos/asf/ignite/blob/72ac53da/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/Io/BinaryStreamBase.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/Io/BinaryStreamBase.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/Io/BinaryStreamBase.cs index 6286602..184209f 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/Io/BinaryStreamBase.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/Io/BinaryStreamBase.cs @@ -579,7 +579,7 @@ namespace Apache.Ignite.Core.Impl.Binary.IO { int val = ReadInt(); - return *(float*)(&val); + return BinaryUtils.IntToFloatBits(val); } /// <summary> @@ -849,7 +849,7 @@ namespace Apache.Ignite.Core.Impl.Binary.IO { long val = ReadLong(); - return *(double*)(&val); + return BinaryUtils.LongToDoubleBits(val); } /// <summary> http://git-wip-us.apache.org/repos/asf/ignite/blob/72ac53da/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeTaskHolder.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeTaskHolder.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeTaskHolder.cs index bb8289b..a6d7cb4 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeTaskHolder.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeTaskHolder.cs @@ -41,10 +41,9 @@ namespace Apache.Ignite.Core.Impl.Compute /// <summary> /// Perform map step. /// </summary> - /// <param name="inStream">Stream with IN data (topology info).</param> - /// <param name="outStream">Stream for OUT data (map result).</param> + /// <param name="stream">Stream with IN data (topology info) and for OUT data (map result).</param> /// <returns>Map with produced jobs.</returns> - void Map(PlatformMemoryStream inStream, PlatformMemoryStream outStream); + void Map(PlatformMemoryStream stream); /// <summary> /// Process local job result. @@ -141,7 +140,7 @@ namespace Apache.Ignite.Core.Impl.Compute /** <inheritDoc /> */ [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification = "User code can throw any exception")] - public void Map(PlatformMemoryStream inStream, PlatformMemoryStream outStream) + public void Map(PlatformMemoryStream stream) { IList<IClusterNode> subgrid; @@ -150,7 +149,7 @@ namespace Apache.Ignite.Core.Impl.Compute var ignite = (Ignite) prj.Ignite; // 1. Unmarshal topology info if topology changed. - var reader = prj.Marshaller.StartUnmarshal(inStream); + var reader = prj.Marshaller.StartUnmarshal(stream); if (reader.ReadBoolean()) { @@ -208,7 +207,8 @@ namespace Apache.Ignite.Core.Impl.Compute } // 3. Write map result to the output stream. - BinaryWriter writer = prj.Marshaller.StartMarshal(outStream); + stream.Reset(); + BinaryWriter writer = prj.Marshaller.StartMarshal(stream); try { @@ -240,7 +240,7 @@ namespace Apache.Ignite.Core.Impl.Compute // Something went wrong during marshaling. Finish(default(TR), e); - outStream.Reset(); + stream.Reset(); writer.WriteBoolean(false); // Map failed. writer.WriteString(e.Message); // Write error message. http://git-wip-us.apache.org/repos/asf/ignite/blob/72ac53da/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackHandlers.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackHandlers.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackHandlers.cs index 6367e1e..32e0a29 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackHandlers.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackHandlers.cs @@ -27,85 +27,12 @@ namespace Apache.Ignite.Core.Impl.Unmanaged { internal void* target; - internal void* cacheStoreCreate; - internal void* cacheStoreInvoke; - internal void* cacheStoreDestroy; - internal void* cacheStoreSessionCreate; - - internal void* cacheEntryFilterCreate; - internal void* cacheEntryFilterApply; - internal void* cacheEntryFilterDestroy; - - internal void* cacheInvoke; - - internal void* computeTaskMap; - internal void* computeTaskJobResult; - internal void* computeTaskReduce; - internal void* computeTaskComplete; - internal void* computeJobSerialize; - internal void* computeJobCreate; - internal void* computeJobExecute; - internal void* computeJobCancel; - internal void* computeJobDestroy; - - internal void* continuousQueryListenerApply; - internal void* continuousQueryFilterCreate; - internal void* continuousQueryFilterApply; - internal void* continuousQueryFilterRelease; - - internal void* dataStreamerTopologyUpdate; - internal void* dataStreamerStreamReceiverInvoke; - - internal void* futureByteResult; - internal void* futureBoolResult; - internal void* futureShortResult; - internal void* futureCharResult; - internal void* futureIntResult; - internal void* futureFloatResult; - internal void* futureLongResult; - internal void* futureDoubleResult; - internal void* futureObjectResult; - internal void* futureNullResult; - internal void* futureError; - - internal void* lifecycleOnEvent; - - internal void* memoryReallocate; - - internal void* messagingFilterCreate; - internal void* messagingFilterApply; - internal void* messagingFilterDestroy; - - internal void* eventFilterCreate; - internal void* eventFilterApply; - internal void* eventFilterDestroy; - - internal void* serviceInit; - internal void* serviceExecute; - internal void* serviceCancel; - internal void* serviceInvokeMethod; - - internal void* clusterNodeFilterApply; - - internal void* nodeInfo; - - internal void* onStart; - internal void* onStop; internal void* error; - internal void* extensionCbInLongOutLong; - internal void* extensionCbInLongLongOutLong; - - internal void* onClientDisconnected; - internal void* ocClientReconnected; - - internal void* affinityFunctionInit; - internal void* affinityFunctionPartition; - internal void* affinityFunctionAssignPartitions; - internal void* affinityFunctionRemoveNode; - internal void* affinityFunctionDestroy; - internal void* loggerLog; internal void* loggerIsLevelEnabled; + + internal void* inLongOutLong; + internal void* inLongLongObjectOutLong; } } http://git-wip-us.apache.org/repos/asf/ignite/blob/72ac53da/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackOp.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackOp.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackOp.cs new file mode 100644 index 0000000..0b766de --- /dev/null +++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackOp.cs @@ -0,0 +1,86 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Apache.Ignite.Core.Impl.Unmanaged +{ + /// <summary> + /// Callback op codes. + /// </summary> + internal enum UnmanagedCallbackOp + { + CacheStoreCreate = 1, + CacheStoreInvoke = 2, + CacheStoreDestroy = 3, + CacheStoreSessionCreate = 4, + CacheEntryFilterCreate = 5, + CacheEntryFilterApply = 6, + CacheEntryFilterDestroy = 7, + CacheInvoke = 8, + ComputeTaskMap = 9, + ComputeTaskJobResult = 10, + ComputeTaskReduce = 11, + ComputeTaskComplete = 12, + ComputeJobSerialize = 13, + ComputeJobCreate = 14, + ComputeJobExecute = 15, + ComputeJobCancel = 16, + ComputeJobDestroy = 17, + ContinuousQueryListenerApply = 18, + ContinuousQueryFilterCreate = 19, + ContinuousQueryFilterApply = 20, + ContinuousQueryFilterRelease = 21, + DataStreamerTopologyUpdate = 22, + DataStreamerStreamReceiverInvoke = 23, + FutureByteResult = 24, + FutureBoolResult = 25, + FutureShortResult = 26, + FutureCharResult = 27, + FutureIntResult = 28, + FutureFloatResult = 29, + FutureLongResult = 30, + FutureDoubleResult = 31, + FutureObjectResult = 32, + FutureNullResult = 33, + FutureError = 34, + LifecycleOnEvent = 35, + MemoryReallocate = 36, + MessagingFilterCreate = 37, + MessagingFilterApply = 38, + MessagingFilterDestroy = 39, + EventFilterCreate = 40, + EventFilterApply = 41, + EventFilterDestroy = 42, + ServiceInit = 43, + ServiceExecute = 44, + ServiceCancel = 45, + ServiceInvokeMethod = 46, + ClusterNodeFilterApply = 47, + NodeInfo = 48, + OnStart = 49, + OnStop = 50, + ExtensionInLongLongOutLong = 52, + OnClientDisconnected = 53, + OnClientReconnected = 54, + AffinityFunctionInit = 55, + AffinityFunctionPartition = 56, + AffinityFunctionAssignPartitions = 57, + AffinityFunctionRemoveNode = 58, + AffinityFunctionDestroy = 59, + ComputeTaskLocalJobResult = 60, + ComputeJobExecuteLocal = 61 + } +}
