http://git-wip-us.apache.org/repos/asf/ignite/blob/eaf8ae24/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/transactions/PlatformTransactions.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/transactions/PlatformTransactions.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/transactions/PlatformTransactions.java
index 8afabac..339937c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/transactions/PlatformTransactions.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/transactions/PlatformTransactions.java
@@ -23,6 +23,7 @@ import java.util.concurrent.atomic.AtomicLong;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteTransactions;
 import org.apache.ignite.configuration.TransactionConfiguration;
+import org.apache.ignite.internal.binary.BinaryRawReaderEx;
 import org.apache.ignite.internal.binary.BinaryRawWriterEx;
 import org.apache.ignite.internal.processors.platform.PlatformAbstractTarget;
 import org.apache.ignite.internal.processors.platform.PlatformContext;
@@ -47,6 +48,33 @@ public class PlatformTransactions extends 
PlatformAbstractTarget {
     public static final int OP_METRICS = 2;
 
     /** */
+    public static final int OP_START = 3;
+
+    /** */
+    public static final int OP_COMMIT = 4;
+
+    /** */
+    public static final int OP_ROLLBACK = 5;
+
+    /** */
+    public static final int OP_CLOSE = 6;
+
+    /** */
+    public static final int OP_STATE = 7;
+
+    /** */
+    public static final int OP_SET_ROLLBACK_ONLY = 8;
+
+    /** */
+    public static final int OP_COMMIT_ASYNC = 9;
+
+    /** */
+    public static final int OP_ROLLBACK_ASYNC = 10;
+
+    /** */
+    public static final int OP_RESET_METRICS = 11;
+
+    /** */
     private final IgniteTransactions txs;
 
     /** Map with currently active transactions. */
@@ -67,44 +95,45 @@ public class PlatformTransactions extends 
PlatformAbstractTarget {
     }
 
     /**
-     * @param concurrency Concurrency.
-     * @param isolation Isolation.
-     * @param timeout Timeout
-     * @param txSize Number of entries participating in transaction.
-     * @return Transaction thread ID.
+     * Listens to the transaction future and notifies .NET int future.
      */
-    public long txStart(int concurrency, int isolation, long timeout, int 
txSize) {
-        TransactionConcurrency txConcurrency = 
TransactionConcurrency.fromOrdinal(concurrency);
-
-        assert txConcurrency != null;
-
-        TransactionIsolation txIsolation = 
TransactionIsolation.fromOrdinal(isolation);
-
-        assert txIsolation != null;
+    private void listenAndNotifyIntFuture(final long futId, final Transaction 
asyncTx) {
+        IgniteFuture fut = asyncTx.future().chain(new C1<IgniteFuture, 
Object>() {
+            private static final long serialVersionUID = 0L;
 
-        Transaction tx = txs.txStart(txConcurrency, txIsolation);
+            @Override public Object apply(IgniteFuture fut) {
+                return null;
+            }
+        });
 
-        return registerTx(tx);
+        PlatformFutureUtils.listen(platformCtx, fut, futId, 
PlatformFutureUtils.TYP_OBJ, this);
     }
 
     /**
-     * @param id Transaction ID.
-     * @throws org.apache.ignite.IgniteCheckedException In case of error.
+     * Register transaction.
+     *
+     * @param tx Transaction.
+     * @return Transaction ID.
      */
-    public int txCommit(long id) throws IgniteCheckedException {
-        tx(id).commit();
+    private long registerTx(Transaction tx) {
+        long id = TX_ID_GEN.incrementAndGet();
 
-        return txClose(id);
+        Transaction old = txMap.put(id, tx);
+
+        assert old == null : "Duplicate TX ids: " + old;
+
+        return id;
     }
 
     /**
+     * Unregister transaction.
+     *
      * @param id Transaction ID.
-     * @throws org.apache.ignite.IgniteCheckedException In case of error.
      */
-    public int txRollback(long id) throws IgniteCheckedException {
-        tx(id).rollback();
+    private void unregisterTx(long id) {
+        Transaction tx = txMap.remove(id);
 
-        return txClose(id);
+        assert tx != null : "Failed to unregister transaction: " + id;
     }
 
     /**
@@ -112,7 +141,7 @@ public class PlatformTransactions extends 
PlatformAbstractTarget {
      * @throws org.apache.ignite.IgniteCheckedException In case of error.
      * @return Transaction state.
      */
-    public int txClose(long id) throws IgniteCheckedException {
+    private int txClose(long id) throws IgniteCheckedException {
         Transaction tx = tx(id);
 
         try {
@@ -126,108 +155,108 @@ public class PlatformTransactions extends 
PlatformAbstractTarget {
     }
 
     /**
-     * @param id Transaction ID.
-     * @return Transaction state.
+     * Get transaction by ID.
+     *
+     * @param id ID.
+     * @return Transaction.
      */
-    public int txState(long id) {
-        Transaction tx = tx(id);
+    private Transaction tx(long id) {
+        Transaction tx = txMap.get(id);
 
-        return tx.state().ordinal();
+        assert tx != null : "Transaction not found for ID: " + id;
+
+        return tx;
     }
 
-    /**
-     * @param id Transaction ID.
-     * @return {@code True} if rollback only flag was set.
-     */
-    public boolean txSetRollbackOnly(long id) {
-        Transaction tx = tx(id);
+    /** {@inheritDoc} */
+    @Override protected long processOutLong(int type) throws 
IgniteCheckedException {
+        switch (type) {
+            case OP_RESET_METRICS:
+                txs.resetMetrics();
 
-        return tx.setRollbackOnly();
+                return TRUE;
+        }
+        
+        return super.processOutLong(type);
     }
 
-    /**
-     * Commits tx in async mode.
-     */
-    public void txCommitAsync(final long txId, final long futId) {
-        final Transaction asyncTx = (Transaction)tx(txId).withAsync();
+    /** {@inheritDoc} */
+    @Override protected long processInLongOutLong(int type, long val) throws 
IgniteCheckedException {
+        switch (type) {
+            case OP_COMMIT:
+                tx(val).commit();
 
-        asyncTx.commit();
+                return txClose(val);
 
-        listenAndNotifyIntFuture(futId, asyncTx);
+            case OP_ROLLBACK:
+                tx(val).rollback();
+
+                return txClose(val);
+
+            case OP_CLOSE:
+                return txClose(val);
+
+            case OP_SET_ROLLBACK_ONLY:
+                return tx(val).setRollbackOnly() ? TRUE : FALSE;
+
+            case OP_STATE:
+                return tx(val).state().ordinal();
+        }
+
+        return super.processInLongOutLong(type, val);
     }
 
-    /**
-     * Rolls back tx in async mode.
-     */
-    public void txRollbackAsync(final long txId, final long futId) {
+    /** {@inheritDoc} */
+    @Override protected long processInStreamOutLong(int type, 
BinaryRawReaderEx reader) throws IgniteCheckedException {
+        long txId = reader.readLong();
+        long futId = reader.readLong();
+
         final Transaction asyncTx = (Transaction)tx(txId).withAsync();
 
-        asyncTx.rollback();
+        switch (type) {
+            case OP_COMMIT_ASYNC:
+                asyncTx.commit();
 
-        listenAndNotifyIntFuture(futId, asyncTx);
-    }
+                break;
 
-    /**
-     * Listens to the transaction future and notifies .NET int future.
-     */
-    private void listenAndNotifyIntFuture(final long futId, final Transaction 
asyncTx) {
-        IgniteFuture fut = asyncTx.future().chain(new C1<IgniteFuture, 
Object>() {
-            private static final long serialVersionUID = 0L;
 
-            @Override public Object apply(IgniteFuture fut) {
-                return null;
-            }
-        });
+            case OP_ROLLBACK_ASYNC:
+                asyncTx.rollback();
 
-        PlatformFutureUtils.listen(platformCtx, fut, futId, 
PlatformFutureUtils.TYP_OBJ, this);
-    }
+                break;
 
-    /**
-     * Resets transaction metrics.
-     */
-    public void resetMetrics() {
-       txs.resetMetrics();
+            default:
+                return super.processInStreamOutLong(type, reader);
+        }
+
+        listenAndNotifyIntFuture(futId, asyncTx);
+
+        return TRUE;
     }
 
-    /**
-     * Register transaction.
-     *
-     * @param tx Transaction.
-     * @return Transaction ID.
-     */
-    private long registerTx(Transaction tx) {
-        long id = TX_ID_GEN.incrementAndGet();
+    /** {@inheritDoc} */
+    @Override protected void processInStreamOutStream(int type, 
BinaryRawReaderEx reader, BinaryRawWriterEx writer) throws 
IgniteCheckedException {
+        switch (type) {
+            case OP_START: {
+                TransactionConcurrency txConcurrency = 
TransactionConcurrency.fromOrdinal(reader.readInt());
 
-        Transaction old = txMap.put(id, tx);
+                assert txConcurrency != null;
 
-        assert old == null : "Duplicate TX ids: " + old;
+                TransactionIsolation txIsolation = 
TransactionIsolation.fromOrdinal(reader.readInt());
 
-        return id;
-    }
+                assert txIsolation != null;
 
-    /**
-     * Unregister transaction.
-     *
-     * @param id Transaction ID.
-     */
-    private void unregisterTx(long id) {
-        Transaction tx = txMap.remove(id);
+                Transaction tx = txs.txStart(txConcurrency, txIsolation, 
reader.readLong(), reader.readInt());
 
-        assert tx != null : "Failed to unregister transaction: " + id;
-    }
+                long id = registerTx(tx);
 
-    /**
-     * Get transaction by ID.
-     *
-     * @param id ID.
-     * @return Transaction.
-     */
-    private Transaction tx(long id) {
-        Transaction tx = txMap.get(id);
+                writer.writeLong(id);
 
-        assert tx != null : "Transaction not found for ID: " + id;
+                return;
+            }
+        }
 
-        return tx;
+        super.processInStreamOutStream(type, reader, writer);
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/eaf8ae24/modules/platforms/cpp/core/include/ignite/cache/cache.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/cache/cache.h 
b/modules/platforms/cpp/core/include/ignite/cache/cache.h
index 59b7a6a..a975be3 100644
--- a/modules/platforms/cpp/core/include/ignite/cache/cache.h
+++ b/modules/platforms/cpp/core/include/ignite/cache/cache.h
@@ -115,7 +115,7 @@ namespace ignite
              */
             bool IsEmpty(IgniteError& err)
             {
-                return impl.Get()->IsEmpty(&err);
+                return Size(err) == 0;
             }
 
             /**
@@ -1054,7 +1054,6 @@ namespace ignite
              *
              * This method should only be used on the valid instance.
              *
-             * @param err Error.
              */
             void RemoveAll()
             {
@@ -1109,7 +1108,7 @@ namespace ignite
              *
              * This method should only be used on the valid instance.
              *
-             * @param Peek modes.
+             * @param peekModes Peek modes.
              * @return Cache size on this node.
              */
             int32_t LocalSize(int32_t peekModes)
@@ -1128,13 +1127,13 @@ namespace ignite
              *
              * This method should only be used on the valid instance.
              *
-             * @param Peek modes.
+             * @param peekModes Peek modes.
              * @param err Error.
              * @return Cache size on this node.
              */
             int32_t LocalSize(int32_t peekModes, IgniteError& err)
             {
-                return impl.Get()->LocalSize(peekModes, &err);
+                return impl.Get()->Size(peekModes, true, &err);
             }
 
             /**
@@ -1170,7 +1169,7 @@ namespace ignite
              *
              * This method should only be used on the valid instance.
              *
-             * @param Peek modes.
+             * @param peekModes Peek modes.
              * @return Cache size across all nodes.
              */
             int32_t Size(int32_t peekModes)
@@ -1190,13 +1189,13 @@ namespace ignite
              *
              * This method should only be used on the valid instance.
              *
-             * @param Peek modes.
+             * @param peekModes Peek modes.
              * @param err Error.
              * @return Cache size across all nodes.
              */
             int32_t Size(int32_t peekModes, IgniteError& err)
             {
-                return impl.Get()->Size(peekModes, &err);
+                return impl.Get()->Size(peekModes, false, &err);
             }
 
             /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/eaf8ae24/modules/platforms/cpp/core/include/ignite/impl/cache/cache_impl.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/impl/cache/cache_impl.h 
b/modules/platforms/cpp/core/include/ignite/impl/cache/cache_impl.h
index e5f8ab8..3e0f177 100644
--- a/modules/platforms/cpp/core/include/ignite/impl/cache/cache_impl.h
+++ b/modules/platforms/cpp/core/include/ignite/impl/cache/cache_impl.h
@@ -60,14 +60,6 @@ namespace ignite
                 const char* GetName() const;
 
                 /**
-                 * Perform IsEmpty.
-                 *
-                 * @param err Error.
-                 * @return Result.
-                 */
-                bool IsEmpty(IgniteError* err);
-
-                /**
                  * Perform ContainsKey.
                  *
                  * @param inOp Input.
@@ -274,22 +266,13 @@ namespace ignite
                 void RemoveAll(IgniteError* err);
 
                 /**
-                 * Perform Size.
-                 *
-                 * @param peekModes Peek modes.
-                 * @param err Error.
-                 * @return Result.
-                 */
-                int32_t Size(const int32_t peekModes, IgniteError* err);
-
-                /**
-                 * Perform LocalSize.
-                 * 
-                 * @param peekModes Peek modes.
-                 * @param err Error.
-                 * @return Result.
-                 */
-                int32_t LocalSize(const int32_t peekModes, IgniteError* err);
+                * Perform Size.
+                *
+                * @param peekModes Peek modes.
+                * @param local Local flag.
+                * @param err Error.
+                */
+                int32_t Size(int32_t peekModes, bool local, IgniteError* err);
 
                 /**
                  * Invoke query.
@@ -334,16 +317,6 @@ namespace ignite
                 IGNITE_NO_COPY_ASSIGNMENT(CacheImpl)
 
                 /**
-                 * Internal cache size routine.
-                 *
-                 * @param peekModes Peek modes.
-                 * @param loc Local flag.
-                 * @param err Error.
-                 * @return Size.
-                 */
-                int SizeInternal(const int32_t peekModes, const bool loc, 
IgniteError* err);
-
-                /**
                  * Internal query execution routine.
                  *
                  * @param qry Query.

http://git-wip-us.apache.org/repos/asf/ignite/blob/eaf8ae24/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 8b6ebb9..1c91a35 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,15 @@ namespace ignite
                  * Internal out operation.
                  *
                  * @param opType Operation type.
+                 * @param err Error.
+                 * @return Result.
+                 */
+                bool OutOp(int32_t opType, IgniteError* err);
+
+                /**
+                 * Internal out operation.
+                 *
+                 * @param opType Operation type.
                  * @param inOp Input.
                  * @param err Error.
                  * @return Result.
@@ -78,6 +87,15 @@ namespace ignite
                     IgniteError* err);
 
                 /**
+                * Internal out-in operation.
+                *
+                * @param opType Operation type.
+                * @param val Value.
+                * @param err Error.
+                */
+                int64_t OutInOpLong(int32_t opType, int64_t val, IgniteError* 
err);
+
+                /**
                  * Get environment shared pointer.
                  *
                  * @return Environment shared pointer.

http://git-wip-us.apache.org/repos/asf/ignite/blob/eaf8ae24/modules/platforms/cpp/core/src/impl/cache/cache_impl.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/impl/cache/cache_impl.cpp 
b/modules/platforms/cpp/core/src/impl/cache/cache_impl.cpp
index e728f55..d02759d 100644
--- a/modules/platforms/cpp/core/src/impl/cache/cache_impl.cpp
+++ b/modules/platforms/cpp/core/src/impl/cache/cache_impl.cpp
@@ -17,12 +17,8 @@
 
 #include <ignite/common/utils.h>
 
-#include "ignite/cache/cache_peek_mode.h"
 #include "ignite/impl/cache/cache_impl.h"
-#include "ignite/impl/interop/interop.h"
-#include "ignite/impl/binary/binary_reader_impl.h"
 #include "ignite/impl/binary/binary_type_updater_impl.h"
-#include "ignite/binary/binary.h"
 
 using namespace ignite::common::concurrent;
 using namespace ignite::jni::java;
@@ -120,6 +116,18 @@ namespace ignite
             /** Operation: Replace(K, V, V). */
             const int32_t OP_REPLACE_3 = 38;
 
+            /** Operation: Clear(). */
+            const int32_t OP_CLEAR_CACHE = 41;
+
+            /** Operation: RemoveAll(). */
+            const int32_t OP_REMOVE_ALL2 = 43;
+
+            /** Operation: Size(peekModes). */
+            const int32_t OP_SIZE = 48;
+
+            /** Operation: SizeLoc(peekModes). */
+            const int32_t OP_SIZE_LOC = 48;
+
             CacheImpl::CacheImpl(char* name, SharedPointer<IgniteEnvironment> 
env, jobject javaRef) :
                 InteropTarget(env, javaRef),
                 name(name)
@@ -139,11 +147,6 @@ namespace ignite
                 return name;
             }
 
-            bool CacheImpl::IsEmpty(IgniteError* err)
-            {
-                return Size(IGNITE_PEEK_MODE_ALL, err) == 0;
-            }
-
             bool CacheImpl::ContainsKey(InputOperation& inOp, IgniteError* err)
             {
                 return OutOp(OP_CONTAINS_KEY, inOp, err);
@@ -223,7 +226,7 @@ namespace ignite
             {
                 JniErrorInfo jniErr;
 
-                GetEnvironment().Context()->CacheClear(GetTarget(), &jniErr);
+                OutOp(OP_CLEAR_CACHE, err);
 
                 IgniteError::SetError(jniErr.code, jniErr.errCls, 
jniErr.errMsg, err);
             }
@@ -267,19 +270,16 @@ namespace ignite
             {
                 JniErrorInfo jniErr;
 
-                GetEnvironment().Context()->CacheRemoveAll(GetTarget(), 
&jniErr);
+                OutOp(OP_REMOVE_ALL2, err);
 
                 IgniteError::SetError(jniErr.code, jniErr.errCls, 
jniErr.errMsg, err);
             }
 
-            int32_t CacheImpl::Size(const int32_t peekModes, IgniteError* err)
+            int32_t CacheImpl::Size(int32_t peekModes, bool local, 
IgniteError* err)
             {
-                return SizeInternal(peekModes, false, err);
-            }
+                int32_t op = local ? OP_SIZE_LOC : OP_SIZE;
 
-            int32_t CacheImpl::LocalSize(const int32_t peekModes, IgniteError* 
err)
-            {
-                return SizeInternal(peekModes, true, err);
+                return static_cast<int32_t>(OutInOpLong(op, peekModes, err));
             }
 
             QueryCursorImpl* CacheImpl::QuerySql(const SqlQuery& qry, 
IgniteError* err)
@@ -301,20 +301,6 @@ namespace ignite
             {
                 return QueryInternal(qry, OP_QRY_SQL_FIELDS, err);
             }
-
-            int CacheImpl::SizeInternal(const int32_t peekModes, const bool 
loc, IgniteError* err)
-            {
-                JniErrorInfo jniErr;
-
-                int res = GetEnvironment().Context()->CacheSize(GetTarget(), 
peekModes, loc, &jniErr);
-
-                IgniteError::SetError(jniErr.code, jniErr.errCls, 
jniErr.errMsg, err);
-
-                if (jniErr.code == IGNITE_JNI_ERR_SUCCESS)
-                    return res;
-                else
-                    return -1;
-            }
         }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/eaf8ae24/modules/platforms/cpp/core/src/impl/cache/query/query_impl.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/impl/cache/query/query_impl.cpp 
b/modules/platforms/cpp/core/src/impl/cache/query/query_impl.cpp
index 73d9924..c65e1e8 100644
--- a/modules/platforms/cpp/core/src/impl/cache/query/query_impl.cpp
+++ b/modules/platforms/cpp/core/src/impl/cache/query/query_impl.cpp
@@ -41,6 +41,15 @@ namespace ignite
                 /** Operation: get single entry. */
                 const int32_t OP_GET_SINGLE = 3;
 
+                /** Operation: start iterator. */
+                const int32_t OP_ITERATOR = 4;
+
+                /** Operation: close iterator. */
+                const int32_t OP_ITERATOR_CLOSE = 5;
+
+                /** Operation: close iterator. */
+                const int32_t OP_ITERATOR_HAS_NEXT = 6;
+
                 
QueryCursorImpl::QueryCursorImpl(SharedPointer<IgniteEnvironment> env, jobject 
javaRef) :
                     env(env),
                     javaRef(javaRef),
@@ -58,7 +67,7 @@ namespace ignite
                     delete batch;
 
                     // 2. Close the cursor.
-                    env.Get()->Context()->QueryCursorClose(javaRef);
+                    env.Get()->Context()->TargetOutLong(javaRef, 
OP_ITERATOR_CLOSE);
 
                     // 3. Release Java reference.
                     JniContext::Release(javaRef);
@@ -190,7 +199,7 @@ namespace ignite
 
                     JniErrorInfo jniErr;
 
-                    env.Get()->Context()->QueryCursorIterator(javaRef, 
&jniErr);
+                    env.Get()->Context()->TargetOutLong(javaRef, OP_ITERATOR, 
&jniErr);
 
                     IgniteError::SetError(jniErr.code, jniErr.errCls, 
jniErr.errMsg, &err);
 
@@ -240,7 +249,7 @@ namespace ignite
                 {
                     JniErrorInfo jniErr;
 
-                    bool res = 
env.Get()->Context()->QueryCursorIteratorHasNext(javaRef, &jniErr);
+                    bool res = env.Get()->Context()->TargetOutLong(javaRef, 
OP_ITERATOR_HAS_NEXT, &jniErr) == 1;
 
                     IgniteError::SetError(jniErr.code, jniErr.errCls, 
jniErr.errMsg, &err);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/eaf8ae24/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 05764c7..592c1ba 100644
--- a/modules/platforms/cpp/core/src/impl/interop/interop_target.cpp
+++ b/modules/platforms/cpp/core/src/impl/interop/interop_target.cpp
@@ -96,6 +96,20 @@ namespace ignite
                 return false;
             }
 
+            bool InteropTarget::OutOp(int32_t opType, IgniteError* err)
+            {
+                JniErrorInfo jniErr;
+
+                long long res = env.Get()->Context()->TargetOutLong(javaRef, 
opType, &jniErr);
+
+                IgniteError::SetError(jniErr.code, jniErr.errCls, 
jniErr.errMsg, err);
+
+                if (jniErr.code == IGNITE_JNI_ERR_SUCCESS)
+                    return res == 1;
+
+                return false;
+            }
+
             bool InteropTarget::InOp(int32_t opType, OutputOperation& outOp, 
IgniteError* err)
             {
                 JniErrorInfo jniErr;
@@ -137,6 +151,17 @@ namespace ignite
                         ReadFrom(inMem.Get(), outOp);
                 }
             }
+
+            int64_t InteropTarget::OutInOpLong(int32_t opType, int64_t val, 
IgniteError* err)
+            {
+                JniErrorInfo jniErr;
+
+                long long res = 
env.Get()->Context()->TargetInLongOutLong(javaRef, opType, val, &jniErr);
+
+                IgniteError::SetError(jniErr.code, jniErr.errCls, 
jniErr.errMsg, err);
+                    
+                return res;
+            }
         }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/eaf8ae24/modules/platforms/cpp/core/src/impl/transactions/transactions_impl.cpp
----------------------------------------------------------------------
diff --git 
a/modules/platforms/cpp/core/src/impl/transactions/transactions_impl.cpp 
b/modules/platforms/cpp/core/src/impl/transactions/transactions_impl.cpp
index 6c01332..58f3018 100644
--- a/modules/platforms/cpp/core/src/impl/transactions/transactions_impl.cpp
+++ b/modules/platforms/cpp/core/src/impl/transactions/transactions_impl.cpp
@@ -32,8 +32,22 @@ namespace ignite
              */
             enum Operation
             {
-                /** Get metrics operation. */
-                OP_METRICS = 2
+                /** Get metrics. */
+                OP_METRICS = 2,
+                /** Start tx. */
+                OP_START = 3,
+                /** Commit. */
+                OP_COMMIT = 4,
+                /** Rollback. */
+                OP_ROLLBACK = 5,
+                /** Close tx. */
+                OP_CLOSE = 6,
+                /** Get tx state. */
+                OP_STATE = 7,
+                /** Set rollback-only mode. */
+                OP_SET_ROLLBACK_ONLY = 8,
+                /** Reset metrics. */
+                OP_RESET_METRICS = 11,
             };
 
             TransactionsImpl::TransactionsImpl(SP_IgniteEnvironment env, 
jobject javaRef) :
@@ -47,28 +61,98 @@ namespace ignite
                 // No-op.
             }
 
+            /*
+             * Input operation for starting a transaction.
+             */
+            class InTransactionStartOperation : public InputOperation
+            {
+            public:
+                /**
+                * Constructor.
+                *
+                * @param concurrency Concurrency.
+                * @param isolation Isolation.
+                * @param timeout Timeout in milliseconds. Zero if for infinite 
timeout.
+                * @param txSize Number of entries participating in transaction 
(may be approximate).
+                */
+                InTransactionStartOperation(int concurrency, int isolation, 
int64_t timeout, int32_t txSize) :
+                    concurrency(concurrency), isolation(isolation), 
timeout(timeout), txSize(txSize)
+                {
+                    // No-op.
+                }
+
+                virtual void ProcessInput(binary::BinaryWriterImpl& writer)
+                {                        
+                    writer.WriteInt32(concurrency);
+                    writer.WriteInt32(isolation);
+                    writer.WriteInt64(timeout);
+                    writer.WriteInt32(txSize);
+                }
+            private:
+                int concurrency; 
+                
+                int isolation;
+                    
+                int64_t timeout;
+                
+                int32_t txSize;
+
+                IGNITE_NO_COPY_ASSIGNMENT(InTransactionStartOperation)
+            };
+
+            /**
+            * Output operation for starting a transaction.
+            */
+            class OutTransactionStartOperation : public OutputOperation
+            {
+            public:
+                /**
+                * Constructor.
+                */
+                OutTransactionStartOperation(): val(0)
+                {
+                    // No-op.
+                }
+
+                virtual void ProcessOutput(binary::BinaryReaderImpl& reader) 
+                {
+                    val = reader.ReadInt64();
+                }
+
+                /**
+                * Get value.
+                *
+                * @return Value.
+                */
+                int64_t Get()
+                {
+                    return val;
+                }
+
+            private:
+                /** Value */
+                int64_t val;
+
+                IGNITE_NO_COPY_ASSIGNMENT(OutTransactionStartOperation)
+            };
+
+
             int64_t TransactionsImpl::TxStart(int concurrency, int isolation,
                 int64_t timeout, int32_t txSize, IgniteError& err)
             {
-                JniErrorInfo jniErr;
-
-                int64_t id = 
GetEnvironment().Context()->TransactionsStart(GetTarget(),
-                    concurrency, isolation, timeout, txSize, &jniErr);
+                InTransactionStartOperation inOp(concurrency, isolation, 
timeout, txSize);
+                OutTransactionStartOperation outOp;
 
-                if (jniErr.code != IGNITE_JNI_ERR_SUCCESS)
-                    IgniteError::SetError(jniErr.code, jniErr.errCls, 
jniErr.errMsg, &err);
+                OutInOp(OP_START, inOp, outOp, &err);
 
-                return id;
+                return outOp.Get();
             }
 
             TransactionsImpl::TransactionState 
TransactionsImpl::TxCommit(int64_t id, IgniteError& err)
             {
                 JniErrorInfo jniErr;
 
-                int state = 
GetEnvironment().Context()->TransactionsCommit(GetTarget(), id, &jniErr);
-
-                if (jniErr.code != IGNITE_JNI_ERR_SUCCESS)
-                    IgniteError::SetError(jniErr.code, jniErr.errCls, 
jniErr.errMsg, &err);
+                int state = static_cast<int>(OutInOpLong(OP_COMMIT, id, &err));
 
                 return ToTransactionState(state);
             }
@@ -77,10 +161,7 @@ namespace ignite
             {
                 JniErrorInfo jniErr;
 
-                int state = 
GetEnvironment().Context()->TransactionsRollback(GetTarget(), id, &jniErr);
-
-                if (jniErr.code != IGNITE_JNI_ERR_SUCCESS)
-                    IgniteError::SetError(jniErr.code, jniErr.errCls, 
jniErr.errMsg, &err);
+                int state = static_cast<int>(OutInOpLong(OP_ROLLBACK, id, 
&err));
 
                 return ToTransactionState(state);
             }
@@ -89,10 +170,7 @@ namespace ignite
             {
                 JniErrorInfo jniErr;
 
-                int state = 
GetEnvironment().Context()->TransactionsClose(GetTarget(), id, &jniErr);
-
-                if (jniErr.code != IGNITE_JNI_ERR_SUCCESS)
-                    IgniteError::SetError(jniErr.code, jniErr.errCls, 
jniErr.errMsg, &err);
+                int state = static_cast<int>(OutInOpLong(OP_CLOSE, id, &err));
 
                 return ToTransactionState(state);
             }
@@ -101,10 +179,7 @@ namespace ignite
             {
                 JniErrorInfo jniErr;
 
-                bool rollbackOnly = 
GetEnvironment().Context()->TransactionsSetRollbackOnly(GetTarget(), id, 
&jniErr);
-
-                if (jniErr.code != IGNITE_JNI_ERR_SUCCESS)
-                    IgniteError::SetError(jniErr.code, jniErr.errCls, 
jniErr.errMsg, &err);
+                bool rollbackOnly = OutInOpLong(OP_SET_ROLLBACK_ONLY, id, 
&err) == 1;
 
                 return rollbackOnly;
             }
@@ -113,10 +188,7 @@ namespace ignite
             {
                 JniErrorInfo jniErr;
 
-                int state = 
GetEnvironment().Context()->TransactionsState(GetTarget(), id, &jniErr);
-
-                if (jniErr.code != IGNITE_JNI_ERR_SUCCESS)
-                    IgniteError::SetError(jniErr.code, jniErr.errCls, 
jniErr.errMsg, &err);
+                int state = static_cast<int>(OutInOpLong(OP_STATE, id, &err));
 
                 return ToTransactionState(state);
             }

http://git-wip-us.apache.org/repos/asf/ignite/blob/eaf8ae24/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 bcfc213..84f5a29f 100644
--- a/modules/platforms/cpp/jni/include/ignite/jni/exports.h
+++ b/modules/platforms/cpp/jni/include/ignite/jni/exports.h
@@ -55,10 +55,12 @@ extern "C" {
     void IGNITE_CALL IgniteProcessorGetIgniteConfiguration(gcj::JniContext* 
ctx, void* obj, long long memPtr);
     void IGNITE_CALL IgniteProcessorGetCacheNames(gcj::JniContext* ctx, void* 
obj, long long memPtr);
     
+    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);
     void* IGNITE_CALL IgniteTargetInStreamOutObject(gcj::JniContext* ctx, 
void* obj, int opType, long long memPtr);
     void IGNITE_CALL IgniteTargetInObjectStreamOutStream(gcj::JniContext* ctx, 
void* obj, int opType, void* arg, long long inMemPtr, long long outMemPtr);
+    void* IGNITE_CALL 
IgniteTargetInObjectStreamOutObjectStream(gcj::JniContext* ctx, void* obj, int 
opType, void* arg, long long inMemPtr, long long outMemPtr);
     long long IGNITE_CALL IgniteTargetOutLong(gcj::JniContext* ctx, void* obj, 
int opType);
     void IGNITE_CALL IgniteTargetOutStream(gcj::JniContext* ctx, void* obj, 
int opType, long long memPtr);
     void* IGNITE_CALL IgniteTargetOutObject(gcj::JniContext* ctx, void* obj, 
int opType);
@@ -67,69 +69,6 @@ extern "C" {
     void* IGNITE_CALL IgniteTargetListenFutureAndGet(gcj::JniContext* ctx, 
void* obj, long long futId, int typ);
     void* IGNITE_CALL 
IgniteTargetListenFutureForOperationAndGet(gcj::JniContext* ctx, void* obj, 
long long futId, int typ, int opId);
 
-    int IGNITE_CALL IgniteAffinityPartitions(gcj::JniContext* ctx, void* obj);
-
-    void* IGNITE_CALL IgniteCacheWithSkipStore(gcj::JniContext* ctx, void* 
obj);
-    void* IGNITE_CALL IgniteCacheWithNoRetries(gcj::JniContext* ctx, void* 
obj);
-    void* IGNITE_CALL IgniteCacheWithExpiryPolicy(gcj::JniContext* ctx, void* 
obj, long long create, long long update, long long access);
-    void* IGNITE_CALL IgniteCacheWithAsync(gcj::JniContext* ctx, void* obj);
-    void* IGNITE_CALL IgniteCacheWithKeepPortable(gcj::JniContext* ctx, void* 
obj);
-    void IGNITE_CALL IgniteCacheClear(gcj::JniContext* ctx, void* obj);
-    void IGNITE_CALL IgniteCacheRemoveAll(gcj::JniContext* ctx, void* obj);
-    void* IGNITE_CALL IgniteCacheOutOpQueryCursor(gcj::JniContext* ctx, void* 
obj, int type, long long memPtr);
-    void* IGNITE_CALL IgniteCacheOutOpContinuousQuery(gcj::JniContext* ctx, 
void* obj, int type, long long memPtr);
-    void* IGNITE_CALL IgniteCacheIterator(gcj::JniContext* ctx, void* obj);
-    void* IGNITE_CALL IgniteCacheLocalIterator(gcj::JniContext* ctx, void* 
obj, int peekModes);
-    void IGNITE_CALL IgniteCacheEnterLock(gcj::JniContext* ctx, void* obj, 
long long id);
-    void IGNITE_CALL IgniteCacheExitLock(gcj::JniContext* ctx, void* obj, long 
long id);
-    bool IGNITE_CALL IgniteCacheTryEnterLock(gcj::JniContext* ctx, void* obj, 
long long id, long long timeout);
-    void IGNITE_CALL IgniteCacheCloseLock(gcj::JniContext* ctx, void* obj, 
long long id);
-    void IGNITE_CALL IgniteCacheRebalance(gcj::JniContext* ctx, void* obj, 
long long futId);
-    int IGNITE_CALL IgniteCacheSize(gcj::JniContext* ctx, void* obj, int 
peekModes, bool loc);
-
-    void IGNITE_CALL IgniteCacheStoreCallbackInvoke(gcj::JniContext* ctx, 
void* obj, long long memPtr);
-
-    void IGNITE_CALL IgniteComputeWithNoFailover(gcj::JniContext* ctx, void* 
obj);
-    void IGNITE_CALL IgniteComputeWithTimeout(gcj::JniContext* ctx, void* obj, 
long long timeout);
-    void* IGNITE_CALL IgniteComputeExecuteNative(gcj::JniContext* ctx, void* 
obj, long long taskPtr, long long topVer);
-
-    void IGNITE_CALL IgniteContinuousQueryClose(gcj::JniContext* ctx, void* 
obj);
-    void* IGNITE_CALL 
IgniteContinuousQueryGetInitialQueryCursor(gcj::JniContext* ctx, void* obj);
-
-    void IGNITE_CALL IgniteDataStreamerListenTopology(gcj::JniContext* ctx, 
void* obj, long long ptr);
-    bool IGNITE_CALL IgniteDataStreamerAllowOverwriteGet(gcj::JniContext* ctx, 
void* obj);
-    void IGNITE_CALL IgniteDataStreamerAllowOverwriteSet(gcj::JniContext* ctx, 
void* obj, bool val);
-    bool IGNITE_CALL IgniteDataStreamerSkipStoreGet(gcj::JniContext* ctx, 
void* obj);
-    void IGNITE_CALL IgniteDataStreamerSkipStoreSet(gcj::JniContext* ctx, 
void* obj, bool val);
-    int IGNITE_CALL IgniteDataStreamerPerNodeBufferSizeGet(gcj::JniContext* 
ctx, void* obj);
-    void IGNITE_CALL IgniteDataStreamerPerNodeBufferSizeSet(gcj::JniContext* 
ctx, void* obj, int val);
-    int IGNITE_CALL 
IgniteDataStreamerPerNodeParallelOperationsGet(gcj::JniContext* ctx, void* obj);
-    void IGNITE_CALL 
IgniteDataStreamerPerNodeParallelOperationsSet(gcj::JniContext* ctx, void* obj, 
int val);
-
-    void* IGNITE_CALL IgniteMessagingWithAsync(gcj::JniContext* ctx, void* 
obj);
-
-    void* IGNITE_CALL IgniteProjectionForOthers(gcj::JniContext* ctx, void* 
obj, void* prj);
-    void* IGNITE_CALL IgniteProjectionForRemotes(gcj::JniContext* ctx, void* 
obj);
-    void* IGNITE_CALL IgniteProjectionForDaemons(gcj::JniContext* ctx, void* 
obj);
-    void* IGNITE_CALL IgniteProjectionForRandom(gcj::JniContext* ctx, void* 
obj);
-    void* IGNITE_CALL IgniteProjectionForOldest(gcj::JniContext* ctx, void* 
obj);
-    void* IGNITE_CALL IgniteProjectionForYoungest(gcj::JniContext* ctx, void* 
obj);
-    void IGNITE_CALL IgniteProjectionResetMetrics(gcj::JniContext* ctx, void* 
obj);
-    void* IGNITE_CALL IgniteProjectionOutOpRet(gcj::JniContext* ctx, void* 
obj, int type, long long memPtr);
-
-    void IGNITE_CALL IgniteQueryCursorIterator(gcj::JniContext* ctx, void* 
obj);
-    void IGNITE_CALL IgniteQueryCursorClose(gcj::JniContext* ctx, void* obj);
-
-    long long IGNITE_CALL IgniteTransactionsStart(gcj::JniContext* ctx, void* 
obj, int concurrency, int isolation, long long timeout, int txSize);
-    int IGNITE_CALL IgniteTransactionsCommit(gcj::JniContext* ctx, void* obj, 
long long id);
-    void IGNITE_CALL IgniteTransactionsCommitAsync(gcj::JniContext* ctx, void* 
obj, long long id, long long futId);
-    int IGNITE_CALL IgniteTransactionsRollback(gcj::JniContext* ctx, void* 
obj, long long id);
-    void IGNITE_CALL IgniteTransactionsRollbackAsync(gcj::JniContext* ctx, 
void* obj, long long id, long long futId);
-    int IGNITE_CALL IgniteTransactionsClose(gcj::JniContext* ctx, void* obj, 
long long id);
-    int IGNITE_CALL IgniteTransactionsState(gcj::JniContext* ctx, void* obj, 
long long id);
-    bool IGNITE_CALL IgniteTransactionsSetRollbackOnly(gcj::JniContext* ctx, 
void* obj, long long id);
-    void IGNITE_CALL IgniteTransactionsResetMetrics(gcj::JniContext* ctx, 
void* obj);
-
     void* IGNITE_CALL IgniteAcquire(gcj::JniContext* ctx, void* obj);
     void IGNITE_CALL IgniteRelease(void* obj);
 
@@ -142,42 +81,6 @@ extern "C" {
 
     void IGNITE_CALL IgniteDestroyJvm(gcj::JniContext* ctx);
 
-    void* IGNITE_CALL IgniteEventsWithAsync(gcj::JniContext* ctx, void* obj);
-    bool IGNITE_CALL IgniteEventsStopLocalListen(gcj::JniContext* ctx, void* 
obj, long long hnd);
-    void IGNITE_CALL IgniteEventsLocalListen(gcj::JniContext* ctx, void* obj, 
long long hnd, int type);
-    bool IGNITE_CALL IgniteEventsIsEnabled(gcj::JniContext* ctx, void* obj, 
int type);
-        
-       void* IGNITE_CALL IgniteServicesWithAsync(gcj::JniContext* ctx, void* 
obj);
-       void* IGNITE_CALL IgniteServicesWithServerKeepPortable(gcj::JniContext* 
ctx, void* obj);
-       void IGNITE_CALL IgniteServicesCancel(gcj::JniContext* ctx, void* obj, 
char* name);
-       void IGNITE_CALL IgniteServicesCancelAll(gcj::JniContext* ctx, void* 
obj);
-       void* IGNITE_CALL IgniteServicesGetServiceProxy(gcj::JniContext* ctx, 
void* obj, char* name, bool sticky);
-
-    long long IGNITE_CALL IgniteAtomicLongGet(gcj::JniContext* ctx, void* obj);
-    long long IGNITE_CALL IgniteAtomicLongIncrementAndGet(gcj::JniContext* 
ctx, void* obj);
-    long long IGNITE_CALL IgniteAtomicLongGetAndIncrement(gcj::JniContext* 
ctx, void* obj);
-    long long IGNITE_CALL IgniteAtomicLongAddAndGet(gcj::JniContext* ctx, 
void* obj, long long value);
-    long long IGNITE_CALL IgniteAtomicLongGetAndAdd(gcj::JniContext* ctx, 
void* obj, long long value);
-    long long IGNITE_CALL IgniteAtomicLongDecrementAndGet(gcj::JniContext* 
ctx, void* obj);
-    long long IGNITE_CALL IgniteAtomicLongGetAndDecrement(gcj::JniContext* 
ctx, void* obj);
-    long long IGNITE_CALL IgniteAtomicLongGetAndSet(gcj::JniContext* ctx, 
void* obj, long long value);
-    long long IGNITE_CALL IgniteAtomicLongCompareAndSetAndGet(gcj::JniContext* 
ctx, void* obj, long long expVal, long long newVal);
-    bool IGNITE_CALL IgniteAtomicLongIsClosed(gcj::JniContext* ctx, void* obj);
-    void IGNITE_CALL IgniteAtomicLongClose(gcj::JniContext* ctx, void* obj);
-
-    long long IGNITE_CALL IgniteAtomicSequenceGet(gcj::JniContext* ctx, void* 
obj);
-    long long IGNITE_CALL IgniteAtomicSequenceIncrementAndGet(gcj::JniContext* 
ctx, void* obj);
-    long long IGNITE_CALL IgniteAtomicSequenceGetAndIncrement(gcj::JniContext* 
ctx, void* obj);
-    long long IGNITE_CALL IgniteAtomicSequenceAddAndGet(gcj::JniContext* ctx, 
void* obj, long long l);
-    long long IGNITE_CALL IgniteAtomicSequenceGetAndAdd(gcj::JniContext* ctx, 
void* obj, long long l);
-    int IGNITE_CALL IgniteAtomicSequenceGetBatchSize(gcj::JniContext* ctx, 
void* obj);
-    void IGNITE_CALL IgniteAtomicSequenceSetBatchSize(gcj::JniContext* ctx, 
void* obj, int size);
-    bool IGNITE_CALL IgniteAtomicSequenceIsClosed(gcj::JniContext* ctx, void* 
obj);
-    void IGNITE_CALL IgniteAtomicSequenceClose(gcj::JniContext* ctx, void* 
obj);
-
-    bool IGNITE_CALL IgniteAtomicReferenceIsClosed(gcj::JniContext* ctx, void* 
obj);
-    void IGNITE_CALL IgniteAtomicReferenceClose(gcj::JniContext* ctx, void* 
obj);
-
     bool IGNITE_CALL IgniteListenableCancel(gcj::JniContext* ctx, void* obj);
     bool IGNITE_CALL IgniteListenableIsCancelled(gcj::JniContext* ctx, void* 
obj);
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/eaf8ae24/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 18a15e2..96daba8 100644
--- a/modules/platforms/cpp/jni/include/ignite/jni/java.h
+++ b/modules/platforms/cpp/jni/include/ignite/jni/java.h
@@ -31,7 +31,7 @@ namespace ignite
         {
             /* Handlers for callbacks from Java. */
             typedef long long(JNICALL *CacheStoreCreateHandler)(void* target, 
long long memPtr);
-            typedef int(JNICALL *CacheStoreInvokeHandler)(void* target, long 
long objPtr, long long memPtr, void* cb);
+            typedef int(JNICALL *CacheStoreInvokeHandler)(void* target, long 
long objPtr, long long memPtr);
             typedef void(JNICALL *CacheStoreDestroyHandler)(void* target, long 
long objPtr);
             typedef long long(JNICALL *CacheStoreSessionCreateHandler)(void* 
target, long long storePtr);
 
@@ -223,78 +223,8 @@ namespace ignite
              * JNI members.
              */
             struct JniMembers {
-                jclass c_PlatformAbstractQryCursor;
-                jmethodID m_PlatformAbstractQryCursor_iter;
-                jmethodID m_PlatformAbstractQryCursor_iterHasNext;
-                jmethodID m_PlatformAbstractQryCursor_close;
-
-                jclass c_PlatformAffinity;
-                jmethodID m_PlatformAffinity_partitions;
-
-                jclass c_PlatformCache;
-                jmethodID m_PlatformCache_withSkipStore;
-                jmethodID m_PlatformCache_withNoRetries;
-                jmethodID m_PlatformCache_withExpiryPolicy;
-                jmethodID m_PlatformCache_withAsync;
-                jmethodID m_PlatformCache_withKeepPortable;
-                jmethodID m_PlatformCache_clear;
-                jmethodID m_PlatformCache_removeAll;
-                jmethodID m_PlatformCache_iterator;
-                jmethodID m_PlatformCache_localIterator;
-                jmethodID m_PlatformCache_enterLock;
-                jmethodID m_PlatformCache_exitLock;
-                jmethodID m_PlatformCache_tryEnterLock;
-                jmethodID m_PlatformCache_closeLock;
-                jmethodID m_PlatformCache_rebalance;
-                jmethodID m_PlatformCache_size;
-
-                jclass c_PlatformCacheStoreCallback;
-                jmethodID m_PlatformCacheStoreCallback_invoke;
-
                 jclass c_IgniteException;
 
-                jclass c_PlatformClusterGroup;
-                jmethodID m_PlatformClusterGroup_forOthers;
-                jmethodID m_PlatformClusterGroup_forRemotes;
-                jmethodID m_PlatformClusterGroup_forDaemons;
-                jmethodID m_PlatformClusterGroup_forRandom;
-                jmethodID m_PlatformClusterGroup_forOldest;
-                jmethodID m_PlatformClusterGroup_forYoungest;
-                jmethodID m_PlatformClusterGroup_resetMetrics;
-
-                jclass c_PlatformCompute;
-                jmethodID m_PlatformCompute_withNoFailover;
-                jmethodID m_PlatformCompute_withTimeout;
-                jmethodID m_PlatformCompute_executeNative;
-
-                jclass c_PlatformContinuousQuery;
-                jmethodID m_PlatformContinuousQuery_close;
-                jmethodID m_PlatformContinuousQuery_getInitialQueryCursor;
-
-                jclass c_PlatformDataStreamer;
-                jmethodID m_PlatformDataStreamer_listenTopology;
-                jmethodID m_PlatformDataStreamer_getAllowOverwrite;
-                jmethodID m_PlatformDataStreamer_setAllowOverwrite;
-                jmethodID m_PlatformDataStreamer_getSkipStore;
-                jmethodID m_PlatformDataStreamer_setSkipStore;
-                jmethodID m_PlatformDataStreamer_getPerNodeBufSize;
-                jmethodID m_PlatformDataStreamer_setPerNodeBufSize;
-                jmethodID m_PlatformDataStreamer_getPerNodeParallelOps;
-                jmethodID m_PlatformDataStreamer_setPerNodeParallelOps;
-
-                jclass c_PlatformEvents;
-                jmethodID m_PlatformEvents_withAsync;
-                jmethodID m_PlatformEvents_stopLocalListen;
-                jmethodID m_PlatformEvents_localListen;
-                jmethodID m_PlatformEvents_isEnabled;
-
-                jclass c_PlatformServices;
-                jmethodID m_PlatformServices_withAsync;
-                jmethodID m_PlatformServices_withServerKeepPortable;
-                jmethodID m_PlatformServices_cancel;
-                jmethodID m_PlatformServices_cancelAll;
-                jmethodID m_PlatformServices_serviceProxy;
-
                 jclass c_PlatformIgnition;
                 jmethodID m_PlatformIgnition_start;
                 jmethodID m_PlatformIgnition_instance;
@@ -302,9 +232,6 @@ namespace ignite
                 jmethodID m_PlatformIgnition_stop;
                 jmethodID m_PlatformIgnition_stopAll;
 
-                jclass c_PlatformMessaging;
-                jmethodID m_PlatformMessaging_withAsync;
-
                 jclass c_PlatformProcessor;
                 jmethodID m_PlatformProcessor_releaseStart;
                 jmethodID m_PlatformProcessor_cache;
@@ -331,6 +258,7 @@ namespace ignite
                 jmethodID m_PlatformProcessor_atomicReference;
 
                 jclass c_PlatformTarget;
+                jmethodID m_PlatformTarget_inLongOutLong;
                 jmethodID m_PlatformTarget_inStreamOutLong;
                 jmethodID m_PlatformTarget_inStreamOutObject;
                 jmethodID m_PlatformTarget_outLong;
@@ -338,54 +266,16 @@ namespace ignite
                 jmethodID m_PlatformTarget_outObject;
                 jmethodID m_PlatformTarget_inStreamOutStream;
                 jmethodID m_PlatformTarget_inObjectStreamOutStream;
+                jmethodID m_PlatformTarget_inObjectStreamOutObjectStream;
                 jmethodID m_PlatformTarget_listenFuture;
                 jmethodID m_PlatformTarget_listenFutureForOperation;
                 jmethodID m_PlatformTarget_listenFutureAndGet;
                 jmethodID m_PlatformTarget_listenFutureForOperationAndGet;
 
-                jclass c_PlatformTransactions;
-                jmethodID m_PlatformTransactions_txStart;
-                jmethodID m_PlatformTransactions_txCommit;
-                jmethodID m_PlatformTransactions_txCommitAsync;
-                jmethodID m_PlatformTransactions_txRollback;
-                jmethodID m_PlatformTransactions_txRollbackAsync;
-                jmethodID m_PlatformTransactions_txState;
-                jmethodID m_PlatformTransactions_txSetRollbackOnly;
-                jmethodID m_PlatformTransactions_txClose;
-                jmethodID m_PlatformTransactions_resetMetrics;
-
                 jclass c_PlatformUtils;
                 jmethodID m_PlatformUtils_reallocate;
                 jmethodID m_PlatformUtils_errData;
 
-                jclass c_PlatformAtomicLong;
-                jmethodID m_PlatformAtomicLong_get;
-                jmethodID m_PlatformAtomicLong_incrementAndGet;
-                jmethodID m_PlatformAtomicLong_getAndIncrement;
-                jmethodID m_PlatformAtomicLong_addAndGet;
-                jmethodID m_PlatformAtomicLong_getAndAdd;
-                jmethodID m_PlatformAtomicLong_decrementAndGet;
-                jmethodID m_PlatformAtomicLong_getAndDecrement;
-                jmethodID m_PlatformAtomicLong_getAndSet;
-                jmethodID m_PlatformAtomicLong_compareAndSetAndGet;
-                jmethodID m_PlatformAtomicLong_isClosed;
-                jmethodID m_PlatformAtomicLong_close;
-
-                jclass c_PlatformAtomicSequence;
-                jmethodID m_PlatformAtomicSequence_get;
-                jmethodID m_PlatformAtomicSequence_incrementAndGet;
-                jmethodID m_PlatformAtomicSequence_getAndIncrement;
-                jmethodID m_PlatformAtomicSequence_addAndGet;
-                jmethodID m_PlatformAtomicSequence_getAndAdd;
-                jmethodID m_PlatformAtomicSequence_getBatchSize;
-                jmethodID m_PlatformAtomicSequence_setBatchSize;
-                jmethodID m_PlatformAtomicSequence_isClosed;
-                jmethodID m_PlatformAtomicSequence_close;
-
-                jclass c_PlatformAtomicReference;
-                jmethodID m_PlatformAtomicReference_isClosed;
-                jmethodID m_PlatformAtomicReference_close;
-
                 jclass c_PlatformListenable;
                 jmethodID m_PlatformListenable_cancel;
                 jmethodID m_PlatformListenable_isCancelled;
@@ -547,10 +437,12 @@ namespace ignite
                                void ProcessorGetIgniteConfiguration(jobject 
obj, long long memPtr);
                                void ProcessorGetCacheNames(jobject obj, long 
long memPtr);
 
+                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);
                 jobject TargetInStreamOutObject(jobject obj, int type, long 
long memPtr, JniErrorInfo* errInfo = NULL);
                 void TargetInObjectStreamOutStream(jobject obj, int opType, 
void* arg, long long inMemPtr, long long outMemPtr, JniErrorInfo* errInfo = 
NULL);
+                jobject TargetInObjectStreamOutObjectStream(jobject obj, int 
opType, void* arg, long long inMemPtr, long long outMemPtr, JniErrorInfo* 
errInfo = NULL);
                 long long TargetOutLong(jobject obj, int opType, JniErrorInfo* 
errInfo = NULL);
                 void TargetOutStream(jobject obj, int opType, long long 
memPtr, JniErrorInfo* errInfo = NULL);
                 jobject TargetOutObject(jobject obj, int opType, JniErrorInfo* 
errInfo = NULL);
@@ -559,105 +451,8 @@ namespace ignite
                 void* TargetListenFutureAndGet(jobject obj, long long futId, 
int typ);
                 void* TargetListenFutureForOperationAndGet(jobject obj, long 
long futId, int typ, int opId);
                 
-                int AffinityPartitions(jobject obj);
-
-                jobject CacheWithSkipStore(jobject obj);
-                jobject CacheWithNoRetries(jobject obj);
-                jobject CacheWithExpiryPolicy(jobject obj, long long create, 
long long update, long long access);
-                jobject CacheWithAsync(jobject obj);
-                jobject CacheWithKeepPortable(jobject obj);
-                void CacheClear(jobject obj, JniErrorInfo* errInfo = NULL);
-                void CacheRemoveAll(jobject obj, JniErrorInfo* errInfo = NULL);
                 jobject CacheOutOpQueryCursor(jobject obj, int type, long long 
memPtr, JniErrorInfo* errInfo = NULL);
                 jobject CacheOutOpContinuousQuery(jobject obj, int type, long 
long memPtr);
-                jobject CacheIterator(jobject obj);
-                jobject CacheLocalIterator(jobject obj, int peekModes);
-                void CacheEnterLock(jobject obj, long long id);
-                void CacheExitLock(jobject obj, long long id);
-                bool CacheTryEnterLock(jobject obj, long long id, long long 
timeout);
-                void CacheCloseLock(jobject obj, long long id);
-                void CacheRebalance(jobject obj, long long futId);
-                int CacheSize(jobject obj, int peekModes, bool loc, 
JniErrorInfo* errInfo = NULL);
-
-                void CacheStoreCallbackInvoke(jobject obj, long long memPtr);
-
-                void ComputeWithNoFailover(jobject obj);
-                void ComputeWithTimeout(jobject obj, long long timeout);
-                void* ComputeExecuteNative(jobject obj, long long taskPtr, 
long long topVer);
-
-                void ContinuousQueryClose(jobject obj);
-                jobject ContinuousQueryGetInitialQueryCursor(jobject obj);
-
-                void DataStreamerListenTopology(jobject obj, long long ptr);
-                bool DataStreamerAllowOverwriteGet(jobject obj);
-                void DataStreamerAllowOverwriteSet(jobject obj, bool val);
-                bool DataStreamerSkipStoreGet(jobject obj);
-                void DataStreamerSkipStoreSet(jobject obj, bool val);
-                int DataStreamerPerNodeBufferSizeGet(jobject obj);
-                void DataStreamerPerNodeBufferSizeSet(jobject obj, int val);
-                int DataStreamerPerNodeParallelOperationsGet(jobject obj);
-                void DataStreamerPerNodeParallelOperationsSet(jobject obj, int 
val);
-
-                jobject MessagingWithAsync(jobject obj);
-
-                jobject ProjectionForOthers(jobject obj, jobject prj);
-                jobject ProjectionForRemotes(jobject obj);
-                jobject ProjectionForDaemons(jobject obj);
-                jobject ProjectionForRandom(jobject obj);
-                jobject ProjectionForOldest(jobject obj);
-                jobject ProjectionForYoungest(jobject obj);
-                void ProjectionResetMetrics(jobject obj);
-                jobject ProjectionOutOpRet(jobject obj, int type, long long 
memPtr);
-
-                void QueryCursorIterator(jobject obj, JniErrorInfo* errInfo = 
NULL);
-                bool QueryCursorIteratorHasNext(jobject obj, JniErrorInfo* 
errInfo = NULL);
-                void QueryCursorClose(jobject obj, JniErrorInfo* errInfo = 
NULL);
-
-                long long TransactionsStart(jobject obj, int concurrency, int 
isolation, long long timeout, int txSize, JniErrorInfo* errInfo = NULL);
-                int TransactionsCommit(jobject obj, long long id, 
JniErrorInfo* errInfo = NULL);
-                void TransactionsCommitAsync(jobject obj, long long id, long 
long futId);
-                int TransactionsRollback(jobject obj, long long id, 
JniErrorInfo* errInfo = NULL);
-                void TransactionsRollbackAsync(jobject obj, long long id, long 
long futId);
-                int TransactionsClose(jobject obj, long long id, JniErrorInfo* 
errInfo = NULL);
-                int TransactionsState(jobject obj, long long id, JniErrorInfo* 
errInfo = NULL);
-                bool TransactionsSetRollbackOnly(jobject obj, long long id, 
JniErrorInfo* errInfo = NULL);
-                void TransactionsResetMetrics(jobject obj);
-
-                jobject EventsWithAsync(jobject obj);
-                bool EventsStopLocalListen(jobject obj, long long hnd);
-                void EventsLocalListen(jobject obj, long long hnd, int type);
-                bool EventsIsEnabled(jobject obj, int type);
-                
-                jobject ServicesWithAsync(jobject obj);
-                jobject ServicesWithServerKeepPortable(jobject obj);
-                void ServicesCancel(jobject obj, char* name);
-                void ServicesCancelAll(jobject obj);
-                void* ServicesGetServiceProxy(jobject obj, char* name, bool 
sticky);
-
-                long long AtomicLongGet(jobject obj);
-                long long AtomicLongIncrementAndGet(jobject obj);
-                long long AtomicLongGetAndIncrement(jobject obj);
-                long long AtomicLongAddAndGet(jobject obj, long long value);
-                long long AtomicLongGetAndAdd(jobject obj, long long value);
-                long long AtomicLongDecrementAndGet(jobject obj);
-                long long AtomicLongGetAndDecrement(jobject obj);
-                long long AtomicLongGetAndSet(jobject obj, long long value);
-                long long AtomicLongCompareAndSetAndGet(jobject obj, long long 
expVal, long long newVal);
-                bool AtomicLongIsClosed(jobject obj);
-                void AtomicLongClose(jobject obj);
-
-                long long AtomicSequenceGet(jobject obj);
-                long long AtomicSequenceIncrementAndGet(jobject obj);
-                long long AtomicSequenceGetAndIncrement(jobject obj);
-                long long AtomicSequenceAddAndGet(jobject obj, long long l);
-                long long AtomicSequenceGetAndAdd(jobject obj, long long l);
-                int AtomicSequenceGetBatchSize(jobject obj);
-                void AtomicSequenceSetBatchSize(jobject obj, int size);
-                bool AtomicSequenceIsClosed(jobject obj);
-                void AtomicSequenceClose(jobject obj);
-
-                bool AtomicReferenceIsClosed(jobject obj);
-                void AtomicReferenceClose(jobject obj);
 
                 bool ListenableCancel(jobject obj);
                 bool ListenableIsCancelled(jobject obj);
@@ -682,7 +477,7 @@ namespace ignite
             };
 
             JNIEXPORT jlong JNICALL JniCacheStoreCreate(JNIEnv *env, jclass 
cls, jlong envPtr, jlong memPtr);
-            JNIEXPORT jint JNICALL JniCacheStoreInvoke(JNIEnv *env, jclass 
cls, jlong envPtr, jlong objPtr, jlong memPtr, jobject cb);
+            JNIEXPORT jint JNICALL JniCacheStoreInvoke(JNIEnv *env, jclass 
cls, jlong envPtr, jlong objPtr, jlong memPtr);
             JNIEXPORT void JNICALL JniCacheStoreDestroy(JNIEnv *env, jclass 
cls, jlong envPtr, jlong objPtr);
             JNIEXPORT jlong JNICALL JniCacheStoreSessionCreate(JNIEnv *env, 
jclass cls, jlong envPtr, jlong storePtr);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/eaf8ae24/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 dc4af3d..c2069b6 100644
--- a/modules/platforms/cpp/jni/project/vs/module.def
+++ b/modules/platforms/cpp/jni/project/vs/module.def
@@ -23,62 +23,10 @@ IgniteTargetInStreamOutStream @20
 IgniteTargetInObjectStreamOutStream @21 
 IgniteTargetListenFuture @22 
 IgniteTargetListenFutureForOperation @23 
-IgniteAffinityPartitions @24 
-IgniteCacheWithSkipStore @25 
-IgniteCacheWithNoRetries @26 
-IgniteCacheWithExpiryPolicy @27 
-IgniteCacheWithAsync @28 
-IgniteCacheWithKeepPortable @29 
-IgniteCacheClear @30 
-IgniteCacheRemoveAll @31 
-IgniteCacheOutOpQueryCursor @32 
-IgniteCacheOutOpContinuousQuery @33 
-IgniteCacheIterator @34 
-IgniteCacheLocalIterator @35 
-IgniteCacheEnterLock @36 
-IgniteCacheExitLock @37 
-IgniteCacheTryEnterLock @38 
-IgniteCacheCloseLock @39 
-IgniteCacheRebalance @40 
-IgniteCacheSize @41 
-IgniteCacheStoreCallbackInvoke @42 
-IgniteComputeWithNoFailover @43 
-IgniteComputeWithTimeout @44 
-IgniteComputeExecuteNative @45 
-IgniteContinuousQueryClose @46 
-IgniteContinuousQueryGetInitialQueryCursor @47 
-IgniteDataStreamerListenTopology @48 
-IgniteDataStreamerAllowOverwriteGet @49 
-IgniteDataStreamerAllowOverwriteSet @50 
-IgniteDataStreamerSkipStoreGet @51 
-IgniteDataStreamerSkipStoreSet @52 
-IgniteDataStreamerPerNodeBufferSizeGet @53 
-IgniteDataStreamerPerNodeBufferSizeSet @54 
-IgniteDataStreamerPerNodeParallelOperationsGet @55 
-IgniteDataStreamerPerNodeParallelOperationsSet @56 
-IgniteMessagingWithAsync @57 
-IgniteProjectionForOthers @58 
-IgniteProjectionForRemotes @59 
-IgniteProjectionForDaemons @60 
-IgniteProjectionForRandom @61 
-IgniteProjectionForOldest @62 
-IgniteProjectionForYoungest @63 
+IgniteTargetInLongOutLong @24
 IgniteProcessorCompute @64 
 IgniteProcessorMessage @65 
 IgniteProcessorEvents @66 
-IgniteProjectionResetMetrics @67 
-IgniteProjectionOutOpRet @68 
-IgniteQueryCursorIterator @69 
-IgniteQueryCursorClose @70 
-IgniteTransactionsStart @71 
-IgniteTransactionsCommit @72 
-IgniteTransactionsCommitAsync @73 
-IgniteTransactionsRollback @74 
-IgniteTransactionsRollbackAsync @75 
-IgniteTransactionsClose @76 
-IgniteTransactionsState @77 
-IgniteTransactionsSetRollbackOnly @78 
-IgniteTransactionsResetMetrics @79 
 IgniteAcquire @80 
 IgniteRelease @81 
 IgniteThrowToJava @82 
@@ -86,29 +34,9 @@ IgniteHandlersSize @83
 IgniteCreateContext @84 
 IgniteDeleteContext @85 
 IgniteDestroyJvm @86 
-IgniteEventsWithAsync @87 
-IgniteEventsStopLocalListen @88 
-IgniteEventsLocalListen @89 
-IgniteEventsIsEnabled @90 
 IgniteTargetOutObject @91 
-IgniteServicesWithAsync @92
-IgniteServicesWithServerKeepPortable @93
-IgniteServicesCancel @94
-IgniteServicesCancelAll @95
-IgniteServicesGetServiceProxy @96
 IgniteProcessorExtensions @97
 IgniteProcessorAtomicLong @98
-IgniteAtomicLongGet @99 
-IgniteAtomicLongIncrementAndGet @100 
-IgniteAtomicLongGetAndIncrement @101
-IgniteAtomicLongAddAndGet @102
-IgniteAtomicLongGetAndAdd @103
-IgniteAtomicLongDecrementAndGet @104
-IgniteAtomicLongGetAndDecrement @105
-IgniteAtomicLongGetAndSet @106
-IgniteAtomicLongCompareAndSetAndGet @107
-IgniteAtomicLongIsClosed @108
-IgniteAtomicLongClose @109
 IgniteListenableCancel @110
 IgniteListenableIsCancelled @111
 IgniteTargetListenFutureAndGet @112
@@ -118,18 +46,7 @@ IgniteProcessorGetOrCreateCacheFromConfig @115
 IgniteProcessorGetIgniteConfiguration @116
 IgniteProcessorDestroyCache @117
 IgniteProcessorAtomicSequence @118
-IgniteAtomicSequenceGet @119
-IgniteAtomicSequenceIncrementAndGet @120
-IgniteAtomicSequenceGetAndIncrement @121
-IgniteAtomicSequenceAddAndGet @122
-IgniteAtomicSequenceGetAndAdd @123
-IgniteAtomicSequenceGetBatchSize @124
-IgniteAtomicSequenceSetBatchSize @125
-IgniteAtomicSequenceIsClosed @126
-IgniteAtomicSequenceClose @127
 IgniteProcessorAtomicReference @128
-IgniteAtomicReferenceIsClosed @129
-IgniteAtomicReferenceClose @130
 IgniteProcessorCreateNearCache @131
 IgniteProcessorGetOrCreateNearCache @132
 IgniteProcessorGetCacheNames @133

http://git-wip-us.apache.org/repos/asf/ignite/blob/eaf8ae24/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 89878d4..ca332be 100644
--- a/modules/platforms/cpp/jni/src/exports.cpp
+++ b/modules/platforms/cpp/jni/src/exports.cpp
@@ -138,6 +138,10 @@ extern "C" {
         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);
+    }
+
     long long IGNITE_CALL IgniteTargetInStreamOutLong(gcj::JniContext* ctx, 
void* obj, int opType, long long memPtr) {
         return ctx->TargetInStreamOutLong(static_cast<jobject>(obj), opType, 
memPtr);
     }
@@ -154,6 +158,10 @@ extern "C" {
         ctx->TargetInObjectStreamOutStream(static_cast<jobject>(obj), opType, 
arg, inMemPtr, outMemPtr);
     }
     
+    void* IGNITE_CALL 
IgniteTargetInObjectStreamOutObjectStream(gcj::JniContext* ctx, void* obj, int 
opType, void* arg, long long inMemPtr, long long outMemPtr) {
+        return 
ctx->TargetInObjectStreamOutObjectStream(static_cast<jobject>(obj), opType, 
arg, inMemPtr, outMemPtr);
+    }
+
     long long IGNITE_CALL IgniteTargetOutLong(gcj::JniContext* ctx, void* obj, 
int opType) {
         return ctx->TargetOutLong(static_cast<jobject>(obj), opType);
     }
@@ -182,219 +190,6 @@ extern "C" {
         return 
ctx->TargetListenFutureForOperationAndGet(static_cast<jobject>(obj), futId, 
typ, opId);
     }
 
-    int IGNITE_CALL IgniteAffinityPartitions(gcj::JniContext* ctx, void* obj) {
-        return ctx->AffinityPartitions(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL IgniteCacheWithSkipStore(gcj::JniContext* ctx, void* 
obj) {
-        return ctx->CacheWithSkipStore(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL IgniteCacheWithNoRetries(gcj::JniContext* ctx, void* 
obj) {
-        return ctx->CacheWithNoRetries(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL IgniteCacheWithExpiryPolicy(gcj::JniContext* ctx, void* 
obj, long long create, long long update, long long access) {
-        return ctx->CacheWithExpiryPolicy(static_cast<jobject>(obj), create, 
update, access);
-    }
-
-    void* IGNITE_CALL IgniteCacheWithAsync(gcj::JniContext* ctx, void* obj) {
-        return ctx->CacheWithAsync(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL IgniteCacheWithKeepPortable(gcj::JniContext* ctx, void* 
obj)
-    {
-        return ctx->CacheWithKeepPortable(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL IgniteCacheClear(gcj::JniContext* ctx, void* obj) {
-        ctx->CacheClear(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL IgniteCacheRemoveAll(gcj::JniContext* ctx, void* obj) {
-        ctx->CacheRemoveAll(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL IgniteCacheOutOpQueryCursor(gcj::JniContext* ctx, void* 
obj, int type, long long memPtr) {
-        return ctx->CacheOutOpQueryCursor(static_cast<jobject>(obj), type, 
memPtr);
-    }
-
-    void* IGNITE_CALL IgniteCacheOutOpContinuousQuery(gcj::JniContext* ctx, 
void* obj, int type, long long memPtr) {
-        return ctx->CacheOutOpContinuousQuery(static_cast<jobject>(obj), type, 
memPtr);
-    }
-
-    void* IGNITE_CALL IgniteCacheIterator(gcj::JniContext* ctx, void* obj) {
-        return ctx->CacheIterator(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL IgniteCacheLocalIterator(gcj::JniContext* ctx, void* 
obj, int peekModes) {
-        return ctx->CacheLocalIterator(static_cast<jobject>(obj), peekModes);
-    }
-
-    void IGNITE_CALL IgniteCacheEnterLock(gcj::JniContext* ctx, void* obj, 
long long id) {
-        ctx->CacheEnterLock(static_cast<jobject>(obj), id);
-    }
-
-    void IGNITE_CALL IgniteCacheExitLock(gcj::JniContext* ctx, void* obj, long 
long id) {
-        ctx->CacheExitLock(static_cast<jobject>(obj), id);
-    }
-
-    bool IGNITE_CALL IgniteCacheTryEnterLock(gcj::JniContext* ctx, void* obj, 
long long id, long long timeout) {
-        return ctx->CacheTryEnterLock(static_cast<jobject>(obj), id, timeout);
-    }
-
-    void IGNITE_CALL IgniteCacheCloseLock(gcj::JniContext* ctx, void* obj, 
long long id) {
-        ctx->CacheCloseLock(static_cast<jobject>(obj), id);
-    }
-
-    void IGNITE_CALL IgniteCacheRebalance(gcj::JniContext* ctx, void* obj, 
long long futId) {
-        ctx->CacheRebalance(static_cast<jobject>(obj), futId);
-    }
-
-    int IGNITE_CALL IgniteCacheSize(gcj::JniContext* ctx, void* obj, int 
peekModes, bool loc) {
-        return ctx->CacheSize(static_cast<jobject>(obj), peekModes, loc);
-    }
-
-    void IGNITE_CALL IgniteComputeWithNoFailover(gcj::JniContext* ctx, void* 
obj) {
-        ctx->ComputeWithNoFailover(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL IgniteComputeWithTimeout(gcj::JniContext* ctx, void* obj, 
long long timeout) {
-        ctx->ComputeWithTimeout(static_cast<jobject>(obj), timeout);
-    }
-
-    void* IGNITE_CALL IgniteComputeExecuteNative(gcj::JniContext* ctx, void* 
obj, long long taskPtr, long long topVer) {
-        return ctx->ComputeExecuteNative(static_cast<jobject>(obj), taskPtr, 
topVer);
-    }
-
-    void IGNITE_CALL IgniteContinuousQueryClose(gcj::JniContext* ctx, void* 
obj) {
-        ctx->ContinuousQueryClose(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL 
IgniteContinuousQueryGetInitialQueryCursor(gcj::JniContext* ctx, void* obj) {
-        return 
ctx->ContinuousQueryGetInitialQueryCursor(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL IgniteCacheStoreCallbackInvoke(gcj::JniContext* ctx, 
void* obj, long long memPtr) {
-        ctx->CacheStoreCallbackInvoke(static_cast<jobject>(obj), memPtr);
-    }
-
-    void IGNITE_CALL IgniteDataStreamerListenTopology(gcj::JniContext* ctx, 
void* obj, long long ptr) {
-        ctx->DataStreamerListenTopology(static_cast<jobject>(obj), ptr);
-    }
-
-    bool IGNITE_CALL IgniteDataStreamerAllowOverwriteGet(gcj::JniContext* ctx, 
void* obj) {
-        return ctx->DataStreamerAllowOverwriteGet(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL IgniteDataStreamerAllowOverwriteSet(gcj::JniContext* ctx, 
void* obj, bool val) {
-        ctx->DataStreamerAllowOverwriteSet(static_cast<jobject>(obj), val);
-    }
-
-    bool IGNITE_CALL IgniteDataStreamerSkipStoreGet(gcj::JniContext* ctx, 
void* obj) {
-        return ctx->DataStreamerSkipStoreGet(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL IgniteDataStreamerSkipStoreSet(gcj::JniContext* ctx, 
void* obj, bool val) {
-        ctx->DataStreamerSkipStoreSet(static_cast<jobject>(obj), val);
-    }
-
-    int IGNITE_CALL IgniteDataStreamerPerNodeBufferSizeGet(gcj::JniContext* 
ctx, void* obj) {
-        return 
ctx->DataStreamerPerNodeBufferSizeGet(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL IgniteDataStreamerPerNodeBufferSizeSet(gcj::JniContext* 
ctx, void* obj, int val) {
-        ctx->DataStreamerPerNodeBufferSizeSet(static_cast<jobject>(obj), val);
-    }
-
-    int IGNITE_CALL 
IgniteDataStreamerPerNodeParallelOperationsGet(gcj::JniContext* ctx, void* obj) 
{
-        return 
ctx->DataStreamerPerNodeParallelOperationsGet(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL 
IgniteDataStreamerPerNodeParallelOperationsSet(gcj::JniContext* ctx, void* obj, 
int val) {
-        
ctx->DataStreamerPerNodeParallelOperationsSet(static_cast<jobject>(obj), val);
-    }
-
-    void* IGNITE_CALL IgniteMessagingWithAsync(gcj::JniContext* ctx, void* 
obj) {
-        return ctx->MessagingWithAsync(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL IgniteProjectionForOthers(gcj::JniContext* ctx, void* 
obj, void* prj) {
-        return ctx->ProjectionForOthers(static_cast<jobject>(obj), 
static_cast<jobject>(prj));
-    }
-
-    void* IGNITE_CALL IgniteProjectionForRemotes(gcj::JniContext* ctx, void* 
obj) {
-        return ctx->ProjectionForRemotes(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL IgniteProjectionForDaemons(gcj::JniContext* ctx, void* 
obj) {
-        return ctx->ProjectionForDaemons(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL IgniteProjectionForRandom(gcj::JniContext* ctx, void* 
obj) {
-        return ctx->ProjectionForRandom(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL IgniteProjectionForOldest(gcj::JniContext* ctx, void* 
obj) {
-        return ctx->ProjectionForOldest(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL IgniteProjectionForYoungest(gcj::JniContext* ctx, void* 
obj) {
-        return ctx->ProjectionForYoungest(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL IgniteProjectionResetMetrics(gcj::JniContext* ctx, void* 
obj) {
-        ctx->ProjectionResetMetrics(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL IgniteProjectionOutOpRet(gcj::JniContext* ctx, void* 
obj, int type, long long memPtr) {
-        return ctx->ProjectionOutOpRet(static_cast<jobject>(obj), type, 
memPtr);
-    }
-
-    void IGNITE_CALL IgniteQueryCursorIterator(gcj::JniContext* ctx, void* 
obj) {
-        ctx->QueryCursorIterator(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL IgniteQueryCursorClose(gcj::JniContext* ctx, void* obj) {
-        ctx->QueryCursorClose(static_cast<jobject>(obj));
-    }
-
-    long long IGNITE_CALL IgniteTransactionsStart(gcj::JniContext* ctx, void* 
obj, int concurrency, int isolation, long long timeout, int txSize) {
-        return ctx->TransactionsStart(static_cast<jobject>(obj), concurrency, 
isolation, timeout, txSize);
-    }   
-
-    int IGNITE_CALL IgniteTransactionsCommit(gcj::JniContext* ctx, void* obj, 
long long id) {
-        return ctx->TransactionsCommit(static_cast<jobject>(obj), id);
-    }
-
-    void IGNITE_CALL IgniteTransactionsCommitAsync(gcj::JniContext* ctx, void* 
obj, long long id, long long futId) {
-        return ctx->TransactionsCommitAsync(static_cast<jobject>(obj), id, 
futId);
-    }
-
-    int IGNITE_CALL IgniteTransactionsRollback(gcj::JniContext* ctx, void* 
obj, long long id) {
-        return ctx->TransactionsRollback(static_cast<jobject>(obj), id);
-    }
-
-    void IGNITE_CALL IgniteTransactionsRollbackAsync(gcj::JniContext* ctx, 
void* obj, long long id, long long futId) {
-        return ctx->TransactionsRollbackAsync(static_cast<jobject>(obj), id, 
futId);
-    }
-
-    int IGNITE_CALL IgniteTransactionsClose(gcj::JniContext* ctx, void* obj, 
long long id) {
-        return ctx->TransactionsClose(static_cast<jobject>(obj), id);
-    }
-
-    int IGNITE_CALL IgniteTransactionsState(gcj::JniContext* ctx, void* obj, 
long long id) {
-        return ctx->TransactionsState(static_cast<jobject>(obj), id);
-    }
-
-    bool IGNITE_CALL IgniteTransactionsSetRollbackOnly(gcj::JniContext* ctx, 
void* obj, long long id) {
-        return ctx->TransactionsSetRollbackOnly(static_cast<jobject>(obj), id);
-    }
-
-    void IGNITE_CALL IgniteTransactionsResetMetrics(gcj::JniContext* ctx, 
void* obj) {
-        ctx->TransactionsResetMetrics(static_cast<jobject>(obj));
-    }
-
     void* IGNITE_CALL IgniteAcquire(gcj::JniContext* ctx, void* obj) {
         return ctx->Acquire(static_cast<jobject>(obj));
     }
@@ -423,130 +218,6 @@ extern "C" {
         ctx->DestroyJvm();
     }
 
-    void* IGNITE_CALL IgniteEventsWithAsync(gcj::JniContext* ctx, void* obj) {
-        return ctx->EventsWithAsync(static_cast<jobject>(obj));
-    }
-
-    bool IGNITE_CALL IgniteEventsStopLocalListen(gcj::JniContext* ctx, void* 
obj, long long hnd) {
-        return ctx->EventsStopLocalListen(static_cast<jobject>(obj), hnd);
-    }
-
-    void IGNITE_CALL IgniteEventsLocalListen(gcj::JniContext* ctx, void* obj, 
long long hnd, int type) {
-        ctx->EventsLocalListen(static_cast<jobject>(obj), hnd, type);
-    }
-
-    bool IGNITE_CALL IgniteEventsIsEnabled(gcj::JniContext* ctx, void* obj, 
int type) {
-        return ctx->EventsIsEnabled(static_cast<jobject>(obj), type);
-    }    
-    
-       void* IGNITE_CALL IgniteServicesWithAsync(gcj::JniContext* ctx, void* 
obj) {
-               return ctx->ServicesWithAsync(static_cast<jobject>(obj));
-    }
-
-    void* IGNITE_CALL IgniteServicesWithServerKeepPortable(gcj::JniContext* 
ctx, void* obj) {
-        return ctx->ServicesWithServerKeepPortable(static_cast<jobject>(obj));
-    }
-
-       void IGNITE_CALL IgniteServicesCancel(gcj::JniContext* ctx, void* obj, 
char* name) {
-               ctx->ServicesCancel(static_cast<jobject>(obj), name);
-    }
-
-       void IGNITE_CALL IgniteServicesCancelAll(gcj::JniContext* ctx, void* 
obj) {
-               ctx->ServicesCancelAll(static_cast<jobject>(obj));
-    }
-
-       void* IGNITE_CALL IgniteServicesGetServiceProxy(gcj::JniContext* ctx, 
void* obj, char* name, bool sticky) {
-               return ctx->ServicesGetServiceProxy(static_cast<jobject>(obj), 
name, sticky);
-    }
-
-    long long IGNITE_CALL IgniteAtomicLongGet(gcj::JniContext* ctx, void* obj) 
{
-        return ctx->AtomicLongGet(static_cast<jobject>(obj));
-    }
-
-    long long IGNITE_CALL IgniteAtomicLongIncrementAndGet(gcj::JniContext* 
ctx, void* obj) {
-        return ctx->AtomicLongIncrementAndGet(static_cast<jobject>(obj));
-    }
-
-    long long IGNITE_CALL IgniteAtomicLongGetAndIncrement(gcj::JniContext* 
ctx, void* obj) {
-        return ctx->AtomicLongGetAndIncrement(static_cast<jobject>(obj));
-    }
-
-    long long IGNITE_CALL IgniteAtomicLongAddAndGet(gcj::JniContext* ctx, 
void* obj, long long value) {
-        return ctx->AtomicLongAddAndGet(static_cast<jobject>(obj), value);
-    }
-
-    long long IGNITE_CALL IgniteAtomicLongGetAndAdd(gcj::JniContext* ctx, 
void* obj, long long value) {
-        return ctx->AtomicLongGetAndAdd(static_cast<jobject>(obj), value);
-    }
-
-    long long IGNITE_CALL IgniteAtomicLongDecrementAndGet(gcj::JniContext* 
ctx, void* obj) {
-        return ctx->AtomicLongDecrementAndGet(static_cast<jobject>(obj));
-    }
-
-    long long IGNITE_CALL IgniteAtomicLongGetAndDecrement(gcj::JniContext* 
ctx, void* obj) {
-        return ctx->AtomicLongGetAndDecrement(static_cast<jobject>(obj));
-    }
-
-    long long IGNITE_CALL IgniteAtomicLongGetAndSet(gcj::JniContext* ctx, 
void* obj, long long value) {
-        return ctx->AtomicLongGetAndSet(static_cast<jobject>(obj), value);
-    }
-
-    long long IGNITE_CALL IgniteAtomicLongCompareAndSetAndGet(gcj::JniContext* 
ctx, void* obj, long long expVal, long long newVal) {
-        return ctx->AtomicLongCompareAndSetAndGet(static_cast<jobject>(obj), 
expVal, newVal);
-    }
-
-    bool IGNITE_CALL IgniteAtomicLongIsClosed(gcj::JniContext* ctx, void* obj) 
{
-        return ctx->AtomicLongIsClosed(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL IgniteAtomicLongClose(gcj::JniContext* ctx, void* obj) {
-        return ctx->AtomicLongClose(static_cast<jobject>(obj));
-    }
-
-    long long IGNITE_CALL IgniteAtomicSequenceGet(gcj::JniContext* ctx, void* 
obj) {
-        return ctx->AtomicSequenceGet(static_cast<jobject>(obj));
-    }
-
-    long long IGNITE_CALL IgniteAtomicSequenceIncrementAndGet(gcj::JniContext* 
ctx, void* obj) {
-        return ctx->AtomicSequenceIncrementAndGet(static_cast<jobject>(obj));
-    }
-
-    long long IGNITE_CALL IgniteAtomicSequenceGetAndIncrement(gcj::JniContext* 
ctx, void* obj) {
-        return ctx->AtomicSequenceGetAndIncrement(static_cast<jobject>(obj));
-    }
-
-    long long IGNITE_CALL IgniteAtomicSequenceAddAndGet(gcj::JniContext* ctx, 
void* obj, long long l) {
-        return ctx->AtomicSequenceAddAndGet(static_cast<jobject>(obj), l);
-    }
-
-    long long IGNITE_CALL IgniteAtomicSequenceGetAndAdd(gcj::JniContext* ctx, 
void* obj, long long l) {
-        return ctx->AtomicSequenceGetAndAdd(static_cast<jobject>(obj), l);
-    }
-
-    int IGNITE_CALL IgniteAtomicSequenceGetBatchSize(gcj::JniContext* ctx, 
void* obj) {
-        return ctx->AtomicSequenceGetBatchSize(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL IgniteAtomicSequenceSetBatchSize(gcj::JniContext* ctx, 
void* obj, int size) {
-        return ctx->AtomicSequenceSetBatchSize(static_cast<jobject>(obj), 
size);
-    }
-
-    bool IGNITE_CALL IgniteAtomicSequenceIsClosed(gcj::JniContext* ctx, void* 
obj) {
-        return ctx->AtomicSequenceIsClosed(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL IgniteAtomicSequenceClose(gcj::JniContext* ctx, void* 
obj) {
-        return ctx->AtomicSequenceClose(static_cast<jobject>(obj));
-    }
-
-    bool IGNITE_CALL IgniteAtomicReferenceIsClosed(gcj::JniContext* ctx, void* 
obj) {
-        return ctx->AtomicReferenceIsClosed(static_cast<jobject>(obj));
-    }
-
-    void IGNITE_CALL IgniteAtomicReferenceClose(gcj::JniContext* ctx, void* 
obj) {
-        ctx->AtomicReferenceClose(static_cast<jobject>(obj));
-    }
-    
     bool IGNITE_CALL IgniteListenableCancel(gcj::JniContext* ctx, void* obj) {
         return ctx->ListenableCancel(static_cast<jobject>(obj));
     }

Reply via email to