You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/12/09 13:13:12 UTC

[06/20] ignite git commit: IGNITE-1694 : .NET: Use DllImport instead of delegates in P/Invoke.

IGNITE-1694 : .NET: Use DllImport instead of delegates in P/Invoke.


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

Branch: refs/heads/ignite-1537
Commit: 568f910f11472e6ab533c3f1cef6f197456e006f
Parents: efe632b
Author: Pavel Tupitsyn <pt...@gridgain.com>
Authored: Tue Dec 8 16:35:51 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Dec 8 16:35:51 2015 +0300

----------------------------------------------------------------------
 .../Apache.Ignite.Core.csproj                   |   1 +
 .../Apache.Ignite.Core/Impl/NativeMethods.cs    |  10 -
 .../Impl/Unmanaged/IgniteJniNativeMethods.cs    | 358 +++++++++
 .../Impl/Unmanaged/UnmanagedUtils.cs            | 788 +++----------------
 modules/platforms/dotnet/Apache.Ignite.FxCop    | 322 +++++++-
 5 files changed, 798 insertions(+), 681 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/568f910f/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 2c7d787..831130c 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
@@ -297,6 +297,7 @@
     <Compile Include="Impl\Transactions\TransactionImpl.cs" />
     <Compile Include="Impl\Transactions\TransactionMetricsImpl.cs" />
     <Compile Include="Impl\Transactions\TransactionsImpl.cs" />
+    <Compile Include="Impl\Unmanaged\IgniteJniNativeMethods.cs" />
     <Compile Include="Impl\Unmanaged\IUnmanagedTarget.cs" />
     <Compile Include="Impl\Unmanaged\UnmanagedCallbackHandlers.cs" />
     <Compile Include="Impl\Unmanaged\UnmanagedCallbacks.cs" />

http://git-wip-us.apache.org/repos/asf/ignite/blob/568f910f/modules/platforms/dotnet/Apache.Ignite.Core/Impl/NativeMethods.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/NativeMethods.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/NativeMethods.cs
index 6e25e7e..eb3ba97 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/NativeMethods.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/NativeMethods.cs
@@ -33,15 +33,5 @@ namespace Apache.Ignite.Core.Impl
         [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi, BestFitMapping = false, 
             ThrowOnUnmappableChar = true)]
         internal static extern IntPtr LoadLibrary(string path);
-
-        /// <summary>
-        /// Get procedure address with WinAPI.
-        /// </summary>
-        /// <param name="ptr">DLL pointer.</param>
-        /// <param name="name">Procedure name.</param>
-        /// <returns>Procedure address.</returns>
-        [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi, BestFitMapping = false, 
-            ThrowOnUnmappableChar = true)]
-        internal static extern IntPtr GetProcAddress(IntPtr ptr, string name);
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/568f910f/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
new file mode 100644
index 0000000..860e703
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs
@@ -0,0 +1,358 @@
+/*
+ * 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
+{
+    using System.Runtime.InteropServices;
+    using System.Security;
+
+    /// <summary>
+    /// Ignite JNI native methods.
+    /// </summary>
+    [SuppressUnmanagedCodeSecurity]
+    internal unsafe static class IgniteJniNativeMethods
+    {
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteReallocate")]
+        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, 
+            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 = "IgniteProcessorGetOrCreateCache")]
+        public static extern void* ProcessorGetOrCreateCache(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 = "IgniteProcessorAtomicLong")]
+        public static extern void* ProcessorAtomicLong(void* ctx, void* obj, sbyte* name, long initVal,
+            [MarshalAs(UnmanagedType.U1)] bool create);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTargetInStreamOutLong")]
+        public static extern long TargetInStreamOutLong(void* ctx, void* target, int opType, long memPtr);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTargetInStreamOutStream")]
+        public static extern void TargetInStreamOutStream(void* ctx, void* target, int opType, long inMemPtr,
+            long outMemPtr);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTargetInStreamOutObject")]
+        public static extern void* TargetInStreanOutObject(void* ctx, void* target, int opType, long memPtr);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTargetInObjectStreamOutStream")]
+        public static extern void TargetInObjectStreamOutStream(void* ctx, void* target, int opType,
+            void* arg, long inMemPtr, long outMemPtr);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTargetOutLong")]
+        public static extern long TargetOutLong(void* ctx, void* target, int opType);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTargetOutStream")]
+        public static extern void TargetOutStream(void* ctx, void* target, int opType, long memPtr);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTargetOutObject")]
+        public static extern void* TargetOutObject(void* ctx, void* target, int opType);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTargetListenFuture")]
+        public static extern void TargetListenFut(void* ctx, void* target, long futId, int typ);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTargetListenFutureForOperation")]
+        public static extern void TargetListenFutForOp(void* ctx, void* target, long futId, int typ, int opId);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteAffinityPartitions")]
+        public static extern int AffinityParts(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheWithSkipStore")]
+        public static extern void* CacheWithSkipStore(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheWithNoRetries")]
+        public static extern void* CacheWithNoRetries(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheWithExpiryPolicy")]
+        public static extern void* CacheWithExpiryPolicy(void* ctx, void* obj, long create, long update, long access);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheWithAsync")]
+        public static extern void* CacheWithAsync(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheWithKeepPortable")]
+        public static extern void* CacheWithKeepBinary(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheClear")]
+        public static extern void CacheClear(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheRemoveAll")]
+        public static extern void CacheRemoveAll(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheOutOpQueryCursor")]
+        public static extern void* CacheOutOpQueryCursor(void* ctx, void* obj, int type, long memPtr);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheOutOpContinuousQuery")]
+        public static extern void* CacheOutOpContinuousQuery(void* ctx, void* obj, int type, long memPtr);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheIterator")]
+        public static extern void* CacheIterator(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheLocalIterator")]
+        public static extern void* CacheLocalIterator(void* ctx, void* obj, int peekModes);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheEnterLock")]
+        public static extern void CacheEnterLock(void* ctx, void* obj, long id);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheExitLock")]
+        public static extern void CacheExitLock(void* ctx, void* obj, long id);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheTryEnterLock")]
+        [return: MarshalAs(UnmanagedType.U1)]
+        public static extern bool CacheTryEnterLock(void* ctx, void* obj, long id, long timeout);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheCloseLock")]
+        public static extern void CacheCloseLock(void* ctx, void* obj, long id);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheRebalance")]
+        public static extern void CacheRebalance(void* ctx, void* obj, long futId);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheSize")]
+        public static extern int CacheSize(void* ctx, void* obj, int peekModes, [MarshalAs(UnmanagedType.U1)] bool loc);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCacheStoreCallbackInvoke")]
+        public static extern void CacheStoreCallbackInvoke(void* ctx, void* obj, long memPtr);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteComputeWithNoFailover")]
+        public static extern void ComputeWithNoFailover(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteComputeWithTimeout")]
+        public static extern void ComputeWithTimeout(void* ctx, void* target, long timeout);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteComputeExecuteNative")]
+        public static extern void ComputeExecuteNative(void* ctx, void* target, long taskPtr, long topVer);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteContinuousQueryClose")]
+        public static extern void ContinuousQryClose(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteContinuousQueryGetInitialQueryCursor")]
+        public static extern void* ContinuousQryGetInitialQueryCursor(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteDataStreamerListenTopology")]
+        public static extern void DataStreamerListenTop(void* ctx, void* obj, long ptr);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteDataStreamerAllowOverwriteGet")]
+        [return: MarshalAs(UnmanagedType.U1)]
+        public static extern bool DataStreamerAllowOverwriteGet(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteDataStreamerAllowOverwriteSet")]
+        public static extern void DataStreamerAllowOverwriteSet(void* ctx, void* obj, 
+            [MarshalAs(UnmanagedType.U1)] bool val);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteDataStreamerSkipStoreGet")]
+        [return: MarshalAs(UnmanagedType.U1)]
+        public static extern bool DataStreamerSkipStoreGet(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteDataStreamerSkipStoreSet")]
+        public static extern void DataStreamerSkipStoreSet(void* ctx, void* obj, 
+            [MarshalAs(UnmanagedType.U1)] bool val);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteDataStreamerPerNodeBufferSizeGet")]
+        public static extern int DataStreamerPerNodeBufferSizeGet(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteDataStreamerPerNodeBufferSizeSet")]
+        public static extern void DataStreamerPerNodeBufferSizeSet(void* ctx, void* obj, int val);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteDataStreamerPerNodeParallelOperationsGet")]
+        public static extern int DataStreamerPerNodeParallelOpsGet(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteDataStreamerPerNodeParallelOperationsSet")]
+        public static extern void DataStreamerPerNodeParallelOpsSet(void* ctx, void* obj, int val);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteMessagingWithAsync")]
+        public static extern void* MessagingWithAsync(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProjectionForOthers")]
+        public static extern void* ProjectionForOthers(void* ctx, void* obj, void* prj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProjectionForRemotes")]
+        public static extern void* ProjectionForRemotes(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProjectionForDaemons")]
+        public static extern void* ProjectionForDaemons(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProjectionForRandom")]
+        public static extern void* ProjectionForRandom(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProjectionForOldest")]
+        public static extern void* ProjectionForOldest(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProjectionForYoungest")]
+        public static extern void* ProjectionForYoungest(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProjectionResetMetrics")]
+        public static extern void ProjectionResetMetrics(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProjectionOutOpRet")]
+        public static extern void* ProjectionOutOpRet(void* ctx, void* obj, int type, long memPtr);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteQueryCursorIterator")]
+        public static extern void QryCursorIterator(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteQueryCursorClose")]
+        public static extern void QryCursorClose(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteAcquire")]
+        public static extern void* Acquire(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteRelease")]
+        public static extern void Release(void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTransactionsStart")]
+        public static extern long TxStart(void* ctx, void* target, int concurrency, int isolation, long timeout,
+            int txSize);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTransactionsCommit")]
+        public static extern int TxCommit(void* ctx, void* target, long id);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTransactionsCommitAsync")]
+        public static extern void TxCommitAsync(void* ctx, void* target, long id, long futId);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTransactionsRollback")]
+        public static extern int TxRollback(void* ctx, void* target, long id);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTransactionsRollbackAsync")]
+        public static extern void TxRollbackAsync(void* ctx, void* target, long id, long futId);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTransactionsClose")]
+        public static extern int TxClose(void* ctx, void* target, long id);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTransactionsState")]
+        public static extern int TxState(void* ctx, void* target, long id);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTransactionsSetRollbackOnly")]
+        [return: MarshalAs(UnmanagedType.U1)]
+        public static extern bool TxSetRollbackOnly(void* ctx, void* target, long id);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTransactionsResetMetrics")]
+        public static extern void TxResetMetrics(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteThrowToJava")]
+        public static extern void ThrowToJava(void* ctx, char* msg);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteHandlersSize")]
+        public static extern int HandlersSize();
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteCreateContext")]
+        public static extern void* CreateContext(void* opts, int optsLen, void* cbs);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteDeleteContext")]
+        public static extern void DeleteContext(void* ptr);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteDestroyJvm")]
+        public static extern void DestroyJvm(void* ctx);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteEventsWithAsync")]
+        public static extern void* EventsWithAsync(void* ctx, void* obj);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteEventsStopLocalListen")]
+        [return: MarshalAs(UnmanagedType.U1)]
+        public static extern bool EventsStopLocalListen(void* ctx, void* obj, long hnd);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteEventsLocalListen")]
+        public static extern void EventsLocalListen(void* ctx, void* obj, long hnd, int type);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteEventsIsEnabled")]
+        [return: MarshalAs(UnmanagedType.U1)]
+        public static extern bool EventsIsEnabled(void* ctx, void* obj, int type);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteServicesWithAsync")]
+        public static extern void* ServicesWithAsync(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteServicesWithServerKeepPortable")]
+        public static extern void* ServicesWithServerKeepBinary(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteServicesCancel")]
+        public static extern long ServicesCancel(void* ctx, void* target, char* name);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteServicesCancelAll")]
+        public static extern long ServicesCancelAll(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteServicesGetServiceProxy")]
+        public static extern void* ServicesGetServiceProxy(void* ctx, void* target, char* name,
+            [MarshalAs(UnmanagedType.U1)] bool sticky);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteAtomicLongGet")]
+        public static extern long AtomicLongGet(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteAtomicLongIncrementAndGet")]
+        public static extern long AtomicLongIncrementAndGet(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteAtomicLongAddAndGet")]
+        public static extern long AtomicLongAddAndGet(void* ctx, void* target, long value);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteAtomicLongDecrementAndGet")]
+        public static extern long AtomicLongDecrementAndGet(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteAtomicLongGetAndSet")]
+        public static extern long AtomicLongGetAndSet(void* ctx, void* target, long value);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteAtomicLongCompareAndSetAndGet")]
+        public static extern long AtomicLongCompareAndSetAndGet(void* ctx, void* target, long expVal, long newVal);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteAtomicLongIsClosed")]
+        [return: MarshalAs(UnmanagedType.U1)]
+        public static extern bool AtomicLongIsClosed(void* ctx, void* target);
+
+        [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteAtomicLongClose")]
+        public static extern void AtomicLongClose(void* ctx, void* target);
+    }
+}
\ No newline at end of file