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

[03/14] ignite git commit: IGNITE-1364: WIP.

http://git-wip-us.apache.org/repos/asf/ignite/blob/1e18fa32/modules/platform/src/main/cpp/core/project/vs/core.vcxproj
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/cpp/core/project/vs/core.vcxproj b/modules/platform/src/main/cpp/core/project/vs/core.vcxproj
new file mode 100644
index 0000000..6819416
--- /dev/null
+++ b/modules/platform/src/main/cpp/core/project/vs/core.vcxproj
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{E2DEA693-F2EA-43C2-A813-053378F6E4DB}</ProjectGuid>
+    <RootNamespace>core</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v100</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v100</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v100</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v100</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <TargetName>gridgain.core</TargetName>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <TargetName>gridgain.core</TargetName>
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <TargetName>gridgain.core</TargetName>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <TargetName>gridgain.core</TargetName>
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>false</SDLCheck>
+      <AdditionalIncludeDirectories>$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;$(ProjectDir)\..\..\..\..\common\include;$(ProjectDir)\..\..\..\..\common\os\win\include;$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\os\win\include</AdditionalIncludeDirectories>
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+      <IntrinsicFunctions>false</IntrinsicFunctions>
+      <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
+      <OmitFramePointers>false</OmitFramePointers>
+      <StringPooling>true</StringPooling>
+      <MinimalRebuild>false</MinimalRebuild>
+      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;IGNITE_IMPL;GG_FRIEND;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WholeProgramOptimization>false</WholeProgramOptimization>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalLibraryDirectories>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OptimizeReferences>false</OptimizeReferences>
+      <EnableCOMDATFolding>false</EnableCOMDATFolding>
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>false</SDLCheck>
+      <AdditionalIncludeDirectories>$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;$(ProjectDir)\..\..\..\..\common\include;$(ProjectDir)\..\..\..\..\common\os\win\include;$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\os\win\include</AdditionalIncludeDirectories>
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+      <IntrinsicFunctions>false</IntrinsicFunctions>
+      <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
+      <OmitFramePointers>false</OmitFramePointers>
+      <StringPooling>true</StringPooling>
+      <MinimalRebuild>false</MinimalRebuild>
+      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;IGNITE_IMPL;GG_FRIEND;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WholeProgramOptimization>false</WholeProgramOptimization>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalLibraryDirectories>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OptimizeReferences>false</OptimizeReferences>
+      <EnableCOMDATFolding>false</EnableCOMDATFolding>
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Full</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>false</SDLCheck>
+      <AdditionalIncludeDirectories>$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;$(ProjectDir)\..\..\..\..\common\include;$(ProjectDir)\..\..\..\..\common\os\win\include;$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\os\win\include</AdditionalIncludeDirectories>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <OmitFramePointers>true</OmitFramePointers>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;IGNITE_IMPL;GG_FRIEND;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalLibraryDirectories>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Full</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>false</SDLCheck>
+      <AdditionalIncludeDirectories>$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;$(ProjectDir)\..\..\..\..\common\include;$(ProjectDir)\..\..\..\..\common\os\win\include;$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\os\win\include</AdditionalIncludeDirectories>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <OmitFramePointers>true</OmitFramePointers>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;IGNITE_IMPL;GG_FRIEND;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalLibraryDirectories>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\include\gridgain\cache\cache.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\cache_entry.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\cache_peek_mode.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\query\query.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_argument.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_cursor.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_scan.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_sql.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_text.h" />
+    <ClInclude Include="..\..\include\gridgain\grid.h" />
+    <ClInclude Include="..\..\include\gridgain\grid_configuration.h" />
+    <ClInclude Include="..\..\include\gridgain\grid_error.h" />
+    <ClInclude Include="..\..\include\gridgain\grid_factory.h" />
+    <ClInclude Include="..\..\include\gridgain\guid.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\cache\cache_impl.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\cache\query\query_impl.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\grid_environment.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\grid_impl.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\handle_registry.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\interop\interop.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\interop\interop_input_stream.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\interop\interop_memory.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\interop\interop_output_stream.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\operations.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_common.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_id_resolver.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_handler.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_manager.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_snapshot.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_updater.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_updater_impl.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_reader_impl.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_utils.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_writer_impl.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_consts.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_containers.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_type.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_raw_reader.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_raw_writer.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_reader.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_writer.h" />
+    <ClInclude Include="..\..\os\win\include\gridgain\impl\utils.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\os\win\src\impl\utils.cpp" />
+    <ClCompile Include="..\..\src\grid.cpp" />
+    <ClCompile Include="..\..\src\grid_error.cpp" />
+    <ClCompile Include="..\..\src\grid_factory.cpp" />
+    <ClCompile Include="..\..\src\guid.cpp" />
+    <ClCompile Include="..\..\src\impl\cache\cache_impl.cpp" />
+    <ClCompile Include="..\..\src\impl\cache\query\query_impl.cpp" />
+    <ClCompile Include="..\..\src\impl\grid_environment.cpp" />
+    <ClCompile Include="..\..\src\impl\grid_impl.cpp" />
+    <ClCompile Include="..\..\src\impl\handle_registry.cpp" />
+    <ClCompile Include="..\..\src\impl\interop\interop_input_stream.cpp" />
+    <ClCompile Include="..\..\src\impl\interop\interop_memory.cpp" />
+    <ClCompile Include="..\..\src\impl\interop\interop_output_stream.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_handler.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_manager.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_snapshot.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_updater.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_updater_impl.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_reader_impl.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_utils.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_writer_impl.cpp" />
+    <ClCompile Include="..\..\src\portable\portable_containers.cpp" />
+    <ClCompile Include="..\..\src\portable\portable_type.cpp" />
+    <ClCompile Include="..\..\src\portable\portable_raw_reader.cpp" />
+    <ClCompile Include="..\..\src\portable\portable_raw_writer.cpp" />
+    <ClCompile Include="..\..\src\portable\portable_reader.cpp" />
+    <ClCompile Include="..\..\src\portable\portable_writer.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\..\..\common\project\vs\common.vcxproj">
+      <Project>{4f7e4917-4612-4b96-9838-025711ade391}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/1e18fa32/modules/platform/src/main/cpp/core/project/vs/core.vcxproj.filters
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/cpp/core/project/vs/core.vcxproj.filters b/modules/platform/src/main/cpp/core/project/vs/core.vcxproj.filters
new file mode 100644
index 0000000..7640178
--- /dev/null
+++ b/modules/platform/src/main/cpp/core/project/vs/core.vcxproj.filters
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <ClCompile Include="..\..\src\impl\cache\cache_impl.cpp">
+      <Filter>Code\impl\cache</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\interop\interop_input_stream.cpp">
+      <Filter>Code\impl\interop</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\interop\interop_memory.cpp">
+      <Filter>Code\impl\interop</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\interop\interop_output_stream.cpp">
+      <Filter>Code\impl\interop</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\grid_environment.cpp">
+      <Filter>Code\impl</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\grid_impl.cpp">
+      <Filter>Code\impl</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\portable\portable_containers.cpp">
+      <Filter>Code\portable</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\portable\portable_raw_reader.cpp">
+      <Filter>Code\portable</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\portable\portable_raw_writer.cpp">
+      <Filter>Code\portable</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\portable\portable_reader.cpp">
+      <Filter>Code\portable</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\portable\portable_writer.cpp">
+      <Filter>Code\portable</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\portable\portable_reader_impl.cpp">
+      <Filter>Code\impl\portable</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\portable\portable_utils.cpp">
+      <Filter>Code\impl\portable</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\portable\portable_writer_impl.cpp">
+      <Filter>Code\impl\portable</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\os\win\src\impl\utils.cpp">
+      <Filter>Code\impl</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\grid.cpp">
+      <Filter>Code</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\grid_error.cpp">
+      <Filter>Code</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\grid_factory.cpp">
+      <Filter>Code</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\guid.cpp">
+      <Filter>Code</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\handle_registry.cpp">
+      <Filter>Code\impl</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\cache\query\query_impl.cpp">
+      <Filter>Code\impl\cache\query</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_snapshot.cpp">
+      <Filter>Code\impl\portable</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_handler.cpp">
+      <Filter>Code\impl\portable</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\portable\portable_type.cpp">
+      <Filter>Code\portable</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_manager.cpp">
+      <Filter>Code\impl\portable</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_updater.cpp">
+      <Filter>Code\impl\portable</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_updater_impl.cpp">
+      <Filter>Code\impl\portable</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\include\gridgain\impl\cache\cache_impl.h">
+      <Filter>Code\impl\cache</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\cache\cache.h">
+      <Filter>Code\cache</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\cache\cache_peek_mode.h">
+      <Filter>Code\cache</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\interop\interop.h">
+      <Filter>Code\impl\interop</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\interop\interop_input_stream.h">
+      <Filter>Code\impl\interop</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\interop\interop_memory.h">
+      <Filter>Code\impl\interop</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\interop\interop_output_stream.h">
+      <Filter>Code\impl\interop</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\grid_environment.h">
+      <Filter>Code\impl</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\grid_impl.h">
+      <Filter>Code\impl</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\operations.h">
+      <Filter>Code\impl</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_common.h">
+      <Filter>Code\impl\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\portable\portable_consts.h">
+      <Filter>Code\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\portable\portable.h">
+      <Filter>Code\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\portable\portable_containers.h">
+      <Filter>Code\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_id_resolver.h">
+      <Filter>Code\impl\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\portable\portable_raw_reader.h">
+      <Filter>Code\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\portable\portable_raw_writer.h">
+      <Filter>Code\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\portable\portable_reader.h">
+      <Filter>Code\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\portable\portable_writer.h">
+      <Filter>Code\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_reader_impl.h">
+      <Filter>Code\impl\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_utils.h">
+      <Filter>Code\impl\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_writer_impl.h">
+      <Filter>Code\impl\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\os\win\include\gridgain\impl\utils.h">
+      <Filter>Code\impl</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\grid.h">
+      <Filter>Code</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\grid_configuration.h">
+      <Filter>Code</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\grid_error.h">
+      <Filter>Code</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\grid_factory.h">
+      <Filter>Code</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\guid.h">
+      <Filter>Code</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\handle_registry.h">
+      <Filter>Code\impl</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\cache\cache_entry.h">
+      <Filter>Code\cache</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\cache\query\query_impl.h">
+      <Filter>Code\impl\cache\query</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_snapshot.h">
+      <Filter>Code\impl\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_handler.h">
+      <Filter>Code\impl\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_manager.h">
+      <Filter>Code\impl\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\portable\portable_type.h">
+      <Filter>Code\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_updater.h">
+      <Filter>Code\impl\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_updater_impl.h">
+      <Filter>Code\impl\portable</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_argument.h">
+      <Filter>Code\cache\query</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_cursor.h">
+      <Filter>Code\cache\query</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_sql.h">
+      <Filter>Code\cache\query</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\cache\query\query.h">
+      <Filter>Code\cache\query</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_text.h">
+      <Filter>Code\cache\query</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_scan.h">
+      <Filter>Code\cache\query</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <Filter Include="Code">
+      <UniqueIdentifier>{91873c79-a64f-4786-ab25-d03ef2db9dc8}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Code\impl">
+      <UniqueIdentifier>{9bede404-e1b1-44d6-b54d-e9b2441c5f13}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Code\impl\cache">
+      <UniqueIdentifier>{b013b0f6-c4b8-4b88-89bc-8b394971788e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Code\impl\portable">
+      <UniqueIdentifier>{883773bd-085d-4eb5-81ee-f11188134faf}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Code\impl\interop">
+      <UniqueIdentifier>{d4cc8aeb-6e7b-47e6-9b83-cba925844d96}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Code\cache">
+      <UniqueIdentifier>{8b7e32c0-e222-4f3a-af31-19df380c369f}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Code\portable">
+      <UniqueIdentifier>{24b7134c-9335-44e1-9604-4093d0e3bbf5}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Code\cache\query">
+      <UniqueIdentifier>{4658a0ff-0d2d-45a6-b8de-93eeec0cc081}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Code\impl\cache\query">
+      <UniqueIdentifier>{b6e57294-120a-46f2-b0ad-c3595e2cf789}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/1e18fa32/modules/platform/src/main/cpp/core/project/vs/core.vcxprojrel
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/cpp/core/project/vs/core.vcxprojrel b/modules/platform/src/main/cpp/core/project/vs/core.vcxprojrel
new file mode 100644
index 0000000..4f9bfaf
--- /dev/null
+++ b/modules/platform/src/main/cpp/core/project/vs/core.vcxprojrel
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{E2DEA693-F2EA-43C2-A813-053378F6E4DB}</ProjectGuid>
+    <RootNamespace>core</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v100</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v100</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v100</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v100</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <TargetName>gridgain.core</TargetName>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <TargetName>gridgain.core</TargetName>
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <TargetName>gridgain.core</TargetName>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <TargetName>gridgain.core</TargetName>
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>false</SDLCheck>
+      <AdditionalIncludeDirectories>$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;$(ProjectDir)\..\..\..\common\include;$(ProjectDir)\..\..\..\common\os\win\include;$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\os\win\include</AdditionalIncludeDirectories>
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+      <IntrinsicFunctions>false</IntrinsicFunctions>
+      <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
+      <OmitFramePointers>false</OmitFramePointers>
+      <StringPooling>true</StringPooling>
+      <MinimalRebuild>false</MinimalRebuild>
+      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;IGNITE_IMPL;GG_FRIEND;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WholeProgramOptimization>false</WholeProgramOptimization>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalLibraryDirectories>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OptimizeReferences>false</OptimizeReferences>
+      <EnableCOMDATFolding>false</EnableCOMDATFolding>
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>false</SDLCheck>
+      <AdditionalIncludeDirectories>$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;$(ProjectDir)\..\..\..\common\include;$(ProjectDir)\..\..\..\common\os\win\include;$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\os\win\include</AdditionalIncludeDirectories>
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+      <IntrinsicFunctions>false</IntrinsicFunctions>
+      <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
+      <OmitFramePointers>false</OmitFramePointers>
+      <StringPooling>true</StringPooling>
+      <MinimalRebuild>false</MinimalRebuild>
+      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;IGNITE_IMPL;GG_FRIEND;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WholeProgramOptimization>false</WholeProgramOptimization>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalLibraryDirectories>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OptimizeReferences>false</OptimizeReferences>
+      <EnableCOMDATFolding>false</EnableCOMDATFolding>
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Full</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>false</SDLCheck>
+      <AdditionalIncludeDirectories>$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;$(ProjectDir)\..\..\..\common\include;$(ProjectDir)\..\..\..\common\os\win\include;$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\os\win\include</AdditionalIncludeDirectories>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <OmitFramePointers>true</OmitFramePointers>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;IGNITE_IMPL;GG_FRIEND;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalLibraryDirectories>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Full</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>false</SDLCheck>
+      <AdditionalIncludeDirectories>$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;$(ProjectDir)\..\..\..\common\include;$(ProjectDir)\..\..\..\common\os\win\include;$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\os\win\include</AdditionalIncludeDirectories>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <OmitFramePointers>true</OmitFramePointers>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;IGNITE_IMPL;GG_FRIEND;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalLibraryDirectories>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>$(JAVA_HOME)\lib\jvm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\include\gridgain\cache\cache.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\cache_entry.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\cache_peek_mode.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\query\query.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_argument.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_cursor.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_scan.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_sql.h" />
+    <ClInclude Include="..\..\include\gridgain\cache\query\query_text.h" />
+    <ClInclude Include="..\..\include\gridgain\grid.h" />
+    <ClInclude Include="..\..\include\gridgain\grid_configuration.h" />
+    <ClInclude Include="..\..\include\gridgain\grid_error.h" />
+    <ClInclude Include="..\..\include\gridgain\grid_factory.h" />
+    <ClInclude Include="..\..\include\gridgain\guid.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\cache\cache_impl.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\cache\query\query_impl.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\grid_environment.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\grid_impl.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\handle_registry.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\interop\interop.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\interop\interop_input_stream.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\interop\interop_memory.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\interop\interop_output_stream.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\operations.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_common.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_id_resolver.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_handler.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_manager.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_snapshot.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_updater.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_metadata_updater_impl.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_reader_impl.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_utils.h" />
+    <ClInclude Include="..\..\include\gridgain\impl\portable\portable_writer_impl.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_consts.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_containers.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_type.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_raw_reader.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_raw_writer.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_reader.h" />
+    <ClInclude Include="..\..\include\gridgain\portable\portable_writer.h" />
+    <ClInclude Include="..\..\os\win\include\gridgain\impl\utils.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\os\win\src\impl\utils.cpp" />
+    <ClCompile Include="..\..\src\grid.cpp" />
+    <ClCompile Include="..\..\src\grid_error.cpp" />
+    <ClCompile Include="..\..\src\grid_factory.cpp" />
+    <ClCompile Include="..\..\src\guid.cpp" />
+    <ClCompile Include="..\..\src\impl\cache\cache_impl.cpp" />
+    <ClCompile Include="..\..\src\impl\cache\query\query_impl.cpp" />
+    <ClCompile Include="..\..\src\impl\grid_environment.cpp" />
+    <ClCompile Include="..\..\src\impl\grid_impl.cpp" />
+    <ClCompile Include="..\..\src\impl\handle_registry.cpp" />
+    <ClCompile Include="..\..\src\impl\interop\interop_input_stream.cpp" />
+    <ClCompile Include="..\..\src\impl\interop\interop_memory.cpp" />
+    <ClCompile Include="..\..\src\impl\interop\interop_output_stream.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_handler.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_manager.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_snapshot.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_updater.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_metadata_updater_impl.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_reader_impl.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_utils.cpp" />
+    <ClCompile Include="..\..\src\impl\portable\portable_writer_impl.cpp" />
+    <ClCompile Include="..\..\src\portable\portable_containers.cpp" />
+    <ClCompile Include="..\..\src\portable\portable_type.cpp" />
+    <ClCompile Include="..\..\src\portable\portable_raw_reader.cpp" />
+    <ClCompile Include="..\..\src\portable\portable_raw_writer.cpp" />
+    <ClCompile Include="..\..\src\portable\portable_reader.cpp" />
+    <ClCompile Include="..\..\src\portable\portable_writer.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\..\common\project\vs\common.vcxproj">
+      <Project>{4f7e4917-4612-4b96-9838-025711ade391}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/1e18fa32/modules/platform/src/main/cpp/core/src/grid.cpp
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/cpp/core/src/grid.cpp b/modules/platform/src/main/cpp/core/src/grid.cpp
new file mode 100644
index 0000000..44c878e
--- /dev/null
+++ b/modules/platform/src/main/cpp/core/src/grid.cpp
@@ -0,0 +1,35 @@
+/*
+ *  Copyright (C) GridGain Systems. All Rights Reserved.
+ *  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+#include <ignite/common/java.h>
+
+#include "gridgain/impl/grid_impl.h"
+#include "gridgain/grid.h"
+
+using namespace ignite::common::concurrent;
+using namespace gridgain::impl;
+
+namespace gridgain
+{    
+    Grid::Grid() : impl(SharedPointer<GridImpl>())
+    {
+        // No-op.
+    }
+
+    Grid::Grid(GridImpl* impl) : impl(SharedPointer<GridImpl>(impl))
+    {
+        // No-op.
+    }
+
+    char* Grid::GetName()
+    {
+        return impl.Get()->GetName();
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/ignite/blob/1e18fa32/modules/platform/src/main/cpp/core/src/grid_error.cpp
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/cpp/core/src/grid_error.cpp b/modules/platform/src/main/cpp/core/src/grid_error.cpp
new file mode 100644
index 0000000..9dbaf1b
--- /dev/null
+++ b/modules/platform/src/main/cpp/core/src/grid_error.cpp
@@ -0,0 +1,217 @@
+/*
+ *  Copyright (C) GridGain Systems. All Rights Reserved.
+ *  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+#include <ignite/common/java.h>
+
+#include "gridgain/impl/utils.h"
+#include "gridgain/grid_error.h"
+
+using namespace ignite::common::java;
+using namespace gridgain::impl::utils;
+
+namespace gridgain
+{
+    void GridError::ThrowIfNeeded(GridError& err)
+    {
+        if (err.code != GG_SUCCESS)
+            throw err;
+    }
+
+    GridError::GridError() : code(GG_SUCCESS), msg(NULL)
+    {
+        // No-op.
+    }
+
+    GridError::GridError(int32_t code) : code(code), msg(NULL)
+    {
+        // No-op.
+    }
+
+    GridError::GridError(int32_t code, const char* msg)
+    {
+        this->code = code;
+        this->msg = CopyChars(msg);
+    }
+
+    GridError::GridError(const GridError& other)
+    {
+        this->code = other.code;
+        this->msg = CopyChars(other.msg);
+    }
+
+    GridError& GridError::operator=(const GridError& other)
+    {
+        if (this != &other)
+        {
+            GridError tmp(other);
+
+            int tmpCode = code;
+            char* tmpMsg = msg;
+            
+            code = tmp.code;
+            msg = tmp.msg;
+
+            tmp.code = tmpCode;
+            tmp.msg = tmpMsg;
+        }
+
+        return *this;
+    }
+
+    GridError::~GridError()
+    {
+        ReleaseChars(msg);
+    }
+
+    int32_t GridError::GetCode()
+    {
+        return code;
+    }
+
+    const char* GridError::GetText()
+    {
+        if (code == GG_SUCCESS)
+            return "Operation completed successfully.";
+        else if (msg)
+            return msg;
+        else
+            return  "No additional information available.";
+    }
+    
+    void GridError::SetError(const int jniCode, const char* jniCls, const char* jniMsg, GridError* err)
+    {
+        if (jniCode == IGNITE_JNI_ERR_SUCCESS)
+            *err = GridError();
+        else if (jniCode == IGNITE_JNI_ERR_GENERIC)
+        {
+            // The most common case when we have Java exception "in hands" and must map it to respective code.
+            if (jniCls)
+            {
+                std::string jniCls0 = jniCls;
+
+                if (jniCls0.compare("java.lang.NoClassDefFoundError") == 0)
+                {
+                    std::stringstream stream; 
+
+                    stream << "Java class is not found (did you set GRIDGAIN_HOME environment variable?)";
+
+                    if (jniMsg)
+                        stream << ": " << jniMsg;
+                    
+                    *err = GridError(GG_ERR_JVM_NO_CLASS_DEF_FOUND, stream.str().c_str());
+                }
+                else if (jniCls0.compare("java.lang.NoSuchMethodError") == 0)
+                {
+                    std::stringstream stream;
+
+                    stream << "Java method is not found (did you set GRIDGAIN_HOME environment variable?)";
+
+                    if (jniMsg)
+                        stream << ": " << jniMsg;
+
+                    *err = GridError(GG_ERR_JVM_NO_SUCH_METHOD, stream.str().c_str());
+                }
+                else if (jniCls0.compare("java.lang.IllegalArgumentException") == 0)
+                    *err = GridError(GG_ERR_ILLEGAL_ARGUMENT, jniMsg);
+                else if (jniCls0.compare("java.lang.IllegalStateException") == 0)
+                    *err = GridError(GG_ERR_ILLEGAL_STATE, jniMsg);
+                else if (jniCls0.compare("java.lang.UnsupportedOperationException") == 0)
+                    *err = GridError(GG_ERR_UNSUPPORTED_OPERATION, jniMsg);
+                else if (jniCls0.compare("java.lang.InterruptedException") == 0)
+                    *err = GridError(GG_ERR_INTERRUPTED, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.cluster.ClusterGroupEmptyException") == 0)
+                    *err = GridError(GG_ERR_CLUSTER_GROUP_EMPTY, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.cluster.ClusterTopologyException") == 0)
+                    *err = GridError(GG_ERR_CLUSTER_TOPOLOGY, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.compute.ComputeExecutionRejectedException") == 0)
+                    *err = GridError(GG_ERR_COMPUTE_EXECUTION_REJECTED, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.compute.ComputeJobFailoverException") == 0)
+                    *err = GridError(GG_ERR_COMPUTE_JOB_FAILOVER, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.compute.ComputeTaskCancelledException") == 0)
+                    *err = GridError(GG_ERR_COMPUTE_TASK_CANCELLED, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.compute.ComputeTaskTimeoutException") == 0)
+                    *err = GridError(GG_ERR_COMPUTE_TASK_TIMEOUT, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.compute.ComputeUserUndeclaredException") == 0)
+                    *err = GridError(GG_ERR_COMPUTE_USER_UNDECLARED_EXCEPTION, jniMsg);
+                else if (jniCls0.compare("javax.cache.CacheException") == 0)
+                    *err = GridError(GG_ERR_CACHE, jniMsg);
+                else if (jniCls0.compare("javax.cache.integration.CacheLoaderException") == 0)
+                    *err = GridError(GG_ERR_CACHE_LOADER, jniMsg);
+                else if (jniCls0.compare("javax.cache.integration.CacheWriterException") == 0)
+                    *err = GridError(GG_ERR_CACHE_WRITER, jniMsg);
+                else if (jniCls0.compare("javax.cache.processor.EntryProcessorException") == 0)
+                    *err = GridError(GG_ERR_ENTRY_PROCESSOR, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.cache.CacheAtomicUpdateTimeoutException") == 0)
+                    *err = GridError(GG_ERR_CACHE_ATOMIC_UPDATE_TIMEOUT, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.cache.CachePartialUpdateException") == 0)
+                    *err = GridError(GG_ERR_CACHE_PARTIAL_UPDATE, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.transactions.TransactionOptimisticException") == 0)
+                    *err = GridError(GG_ERR_TX_OPTIMISTIC, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.transactions.TransactionTimeoutException") == 0)
+                    *err = GridError(GG_ERR_TX_TIMEOUT, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.transactions.TransactionRollbackException") == 0)
+                    *err = GridError(GG_ERR_TX_ROLLBACK, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.transactions.TransactionHeuristicException") == 0)
+                    *err = GridError(GG_ERR_TX_HEURISTIC, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.IgniteAuthenticationException") == 0)
+                    *err = GridError(GG_ERR_AUTHENTICATION, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.plugin.security.GridSecurityException") == 0)
+                    *err = GridError(GG_ERR_SECURITY, jniMsg);
+                else if (jniCls0.compare("org.gridgain.grid.product.ProductLicenseException") == 0)
+                    *err = GridError(GG_ERR_PRODUCT_LICENSE, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.IgniteException") == 0)
+                    *err = GridError(GG_ERR_GENERIC, jniMsg);
+                else if (jniCls0.compare("org.apache.ignite.IgniteCheckedException") == 0)
+                    *err = GridError(GG_ERR_GENERIC, jniMsg);
+                else
+                {
+                    std::stringstream stream;
+                    
+                    stream << "Java exception occurred [cls=" << jniCls0;
+
+                    if (jniMsg)
+                        stream << ", msg=" << jniMsg;
+
+                    stream << "]";
+
+                    *err = GridError(GG_ERR_UNKNOWN, stream.str().c_str());
+                }                    
+            }
+            else
+            {
+                // JNI class name is not available. Something really weird.
+                *err = GridError(GG_ERR_UNKNOWN);
+            }
+        }
+        else if (jniCode == IGNITE_JNI_ERR_JVM_INIT)
+        {
+            std::stringstream stream;
+
+            stream << "Failed to initialize JVM [errCls=";
+
+            if (jniCls)
+                stream << jniCls;
+            else
+                stream << "N/A";
+
+            stream << ", errMsg=";
+
+            if (jniMsg)
+                stream << jniMsg;
+            else
+                stream << "N/A";
+
+            stream << "]";
+
+            *err = GridError(GG_ERR_JVM_INIT, stream.str().c_str());
+        }
+        else if (jniCode == IGNITE_JNI_ERR_JVM_ATTACH)
+            *err = GridError(GG_ERR_JVM_ATTACH, "Failed to attach to JVM.");
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/1e18fa32/modules/platform/src/main/cpp/core/src/grid_factory.cpp
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/cpp/core/src/grid_factory.cpp b/modules/platform/src/main/cpp/core/src/grid_factory.cpp
new file mode 100644
index 0000000..7c7571c
--- /dev/null
+++ b/modules/platform/src/main/cpp/core/src/grid_factory.cpp
@@ -0,0 +1,460 @@
+/*
+ *  Copyright (C) GridGain Systems. All Rights Reserved.
+ *  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+#include <sstream>
+
+#include <ignite/common/common.h>
+#include <ignite/common/concurrent.h>
+#include <ignite/common/exports.h>
+#include <ignite/common/java.h>
+
+#include "gridgain/impl/grid_environment.h"
+#include "gridgain/impl/grid_impl.h"
+#include "gridgain/impl/utils.h"
+#include "gridgain/grid_factory.h"
+
+using namespace ignite::common::concurrent;
+using namespace ignite::common::java;
+using namespace gridgain::impl;
+using namespace gridgain::impl::utils;
+
+namespace gridgain
+{
+    /** Default configuration. */
+    const char* GRID_DFLT_CFG = "config/default-config.xml";
+
+    /** Whether JVM library is loaded to the process. */
+    bool JVM_LIB_LOADED;
+
+    /** Critical section for factory methods. */
+    CriticalSection factoryLock;
+
+    /** Flag indicating that at least one grid has started. */
+    bool started = false;
+
+    /**
+     * Convert integer value to string.
+     */
+    std::string JvmMemoryString(const std::string& prefix, int32_t val)
+    {
+        std::ostringstream ss;
+        ss << val;
+
+        std::string valStr = ss.str();
+
+        std::string res = std::string(prefix);
+        res.append(valStr);
+        res.append("m");
+
+        return res;
+    }
+
+    /**
+     * Create JVM options.
+     *
+     * @param cfg Configuration.
+     * @param home Optional GG home.
+     * @param cp Classpath.
+     * @param opts Options.
+     * @param optsLen Options length.
+     * @return Options.
+     */
+    char** CreateJvmOptions(const GridConfiguration& cfg, const std::string* home, const std::string& cp, int* optsLen)
+    {
+        *optsLen = 3 + (home ? 1 : 0) + cfg.jvmOptsLen;
+        char** opts = new char*[*optsLen];
+
+        int idx = 0;
+
+        // 1. Set classpath.
+        std::string cpFull = std::string("-Djava.class.path=") + cp;
+
+        *(opts + idx++) = CopyChars(cpFull.c_str());
+
+        // 2. Set home.
+        if (home) {
+            std::string homeFull = std::string("-DGRIDGAIN_HOME=") + *home;
+
+            *(opts + idx++) = CopyChars(homeFull.c_str());
+        }
+
+        // 3. Set Xms, Xmx.
+        std::string xmsStr = JvmMemoryString(std::string("-Xms"), cfg.jvmInitMem);
+        std::string xmxStr = JvmMemoryString(std::string("-Xmx"), cfg.jvmMaxMem);
+
+        *(opts + idx++) = CopyChars(xmsStr.c_str());
+        *(opts + idx++) = CopyChars(xmxStr.c_str());
+
+        // 4. Set the rest options.
+        for (int i = 0; i < cfg.jvmOptsLen; i++) {
+            char* optCopy = CopyChars(cfg.jvmOpts[i].opt);
+
+            opts[idx++] = optCopy;
+        }
+
+        return opts;
+    }
+
+    Grid GridFactory::Start(const GridConfiguration& cfg)
+    {
+        return Start(cfg, static_cast<const char*>(NULL));
+    }
+
+    Grid GridFactory::Start(const GridConfiguration& cfg, GridError* err)
+    {
+        return Start(cfg, NULL, err);
+    }
+
+    Grid GridFactory::Start(const GridConfiguration& cfg, const char* name)
+    {
+        GridError err;
+
+        Grid res = Start(cfg, name, &err);
+
+        GridError::ThrowIfNeeded(err);
+
+        return res;
+    }
+
+    Grid GridFactory::Start(const GridConfiguration& cfg, const char* name, GridError* err)
+    {
+        bool failed = false;
+
+        SharedPointer<GridEnvironment> env;
+        SharedPointer<GridEnvironment>* envTarget = NULL;
+
+        jobject javaRef = NULL;
+
+        factoryLock.Enter();
+
+        // 1. Load JVM library if needed.
+        if (!JVM_LIB_LOADED)
+        {
+            bool jvmLibFound;
+            std::string jvmLib;
+
+            if (cfg.jvmLibPath)
+            {
+                std::string jvmLibPath = std::string(cfg.jvmLibPath);
+
+                jvmLib = FindJvmLibrary(&jvmLibPath, &jvmLibFound);
+            }
+            else
+                jvmLib = FindJvmLibrary(NULL, &jvmLibFound);
+
+            if (!jvmLibFound)
+            {
+                *err = GridError(GridError::GG_ERR_JVM_LIB_NOT_FOUND,
+                    "JVM library is not found (did you set JAVA_HOME environment variable?)");
+
+                failed = true;
+            }
+
+            if (!failed) {
+                if (!LoadJvmLibrary(jvmLib))
+                {
+                    *err = GridError(GridError::GG_ERR_JVM_LIB_LOAD_FAILED, "Failed to load JVM library.");
+
+                    failed = true;
+                }
+            }
+
+            JVM_LIB_LOADED = true;
+        }
+
+        if (!failed)
+        {
+            // 2. Resolve GRIDGAIN_HOME.
+            bool homeFound;
+            std::string home;
+
+            if (cfg.gridGainHome)
+            {
+                std::string homePath = std::string(cfg.gridGainHome);
+
+                home = ResolveGridGainHome(&homePath, &homeFound);
+            }
+            else
+                home = ResolveGridGainHome(NULL, &homeFound);
+
+            // 3. Create classpath.
+            std::string cp;
+
+            if (cfg.jvmClassPath)
+            {
+                std::string usrCp = cfg.jvmClassPath;
+
+                cp = CreateGridGainClasspath(&usrCp, homeFound ? &home : NULL);
+            }
+            else
+                cp = CreateGridGainClasspath(NULL, homeFound ? &home : NULL);
+
+            if (!cp.empty())
+            {
+                // 4. Start JVM if needed.
+                JniErrorInfo jniErr;
+
+                env = SharedPointer<GridEnvironment>(new GridEnvironment());
+
+                int optsLen;
+                char** opts = CreateJvmOptions(cfg, homeFound ? &home : NULL, cp, &optsLen);
+
+                envTarget = new SharedPointer<GridEnvironment>(env);
+                
+                SharedPointer<JniContext> ctx(
+                    JniContext::Create(opts, optsLen, env.Get()->GetJniHandlers(envTarget), &jniErr));
+
+                for (int i = 0; i < optsLen; i++)
+                    ReleaseChars(*(opts + i));
+
+                delete[] opts;
+
+                if (!ctx.Get())
+                {
+                    GridError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+                    
+                    failed = true;
+                }
+
+                // 5. Start Ignite.
+                if (!failed)
+                {
+                    char* springCfgPath0 = CopyChars(cfg.springCfgPath);
+
+                    if (!springCfgPath0)
+                        springCfgPath0 = CopyChars(GRID_DFLT_CFG);
+
+                    char* name0 = CopyChars(name);
+
+                    interop::InteropUnpooledMemory mem(16);
+                    interop::InteropOutputStream stream(&mem);
+                    stream.WriteBool(false);
+                    stream.Synchronize();
+
+                    javaRef = ctx.Get()->IgnitionStart(springCfgPath0, name0, 1002, mem.PointerLong(), &jniErr);
+
+                    ReleaseChars(springCfgPath0);
+                    ReleaseChars(name0);
+
+                    if (!javaRef) {
+                        GridError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+                        
+                        failed = true;
+                    }
+                    else {
+                        // 6. Ignite is started at this point.
+                        env.Get()->Initialize(ctx);
+
+                        started = true;
+                    }
+                }
+            }
+            else {
+                *err = GridError(GridError::GG_ERR_JVM_NO_CLASSPATH,
+                    "Java classpath is empty (did you set GRIDGAIN_HOME environment variable?)");
+
+                failed = true;
+            }
+        }
+
+        factoryLock.Leave();
+
+        if (failed) 
+        {
+            if (envTarget)
+                delete envTarget;
+
+            return Grid();
+        }
+        else 
+        {
+            GridImpl* impl = new GridImpl(env, javaRef);
+
+            return Grid(impl);
+        }
+    }
+
+    Grid GridFactory::Get()
+    {
+        return Get(static_cast<const char*>(NULL));
+    }
+
+    Grid GridFactory::Get(GridError* err)
+    {
+        return Get(NULL, err);
+    }
+
+    Grid GridFactory::Get(const char* name)
+    {
+        GridError err;
+
+        Grid res = Get(name, &err);
+
+        GridError::ThrowIfNeeded(err);
+
+        return res;
+    }
+
+    Grid GridFactory::Get(const char* name, GridError* err)
+    {
+        Grid res;
+
+        factoryLock.Enter();
+
+        if (started)
+        {
+            char* name0 = CopyChars(name);
+
+            // 1. Create context for this operation.
+            JniErrorInfo jniErr;
+
+            SharedPointer<JniContext> ctx(JniContext::Create(NULL, 0, JniHandlers(), &jniErr));
+
+            GridError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+
+            if (err->GetCode() == GridError::GG_SUCCESS)
+            {
+                // 2. Get environment pointer.
+                long long ptr = ctx.Get()->IgnitionEnvironmentPointer(name0, &jniErr);
+
+                GridError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+
+                if (err->GetCode() == GridError::GG_SUCCESS)
+                {
+                    if (ptr != 0)
+                    {
+                        // 3. Obtain real environment for this instance.
+                        JniHandlers* hnds = reinterpret_cast<JniHandlers*>(ptr);
+
+                        SharedPointer<GridEnvironment>* env = 
+                            static_cast<SharedPointer<GridEnvironment>*>(hnds->target);
+
+                        // 4. Get fresh node reference.
+                        jobject ref = ctx.Get()->IgnitionInstance(name0, &jniErr);
+
+                        if (err->GetCode() == GridError::GG_SUCCESS) {
+                            if (ref)
+                            {
+                                GridImpl* impl = new GridImpl(*env, ref);
+
+                                res = Grid(impl);
+                            }
+                            else
+                                // Error: concurrent node stop.
+                                *err = GridError(GridError::GG_ERR_GENERIC,
+                                    "Failed to get grid instance because it was stopped concurrently.");
+
+                        }
+                    }
+                    else
+                        // Error: no node with the given name.
+                        *err = GridError(GridError::GG_ERR_GENERIC,
+                            "Failed to get grid instance because it is either not started yet or already stopped.");
+                }
+            }
+
+            ReleaseChars(name0);
+        }
+        else
+            // Error: no node with the given name.
+            *err = GridError(GridError::GG_ERR_GENERIC,
+                "Failed to get grid instance because it is either not started yet or already stopped.");
+
+        factoryLock.Leave();
+
+        return res;
+    }
+
+    bool GridFactory::Stop(const bool cancel)
+    {
+        return Stop(NULL, cancel);
+    }
+
+    bool GridFactory::Stop(const bool cancel, GridError* err)
+    {
+        return Stop(NULL, cancel, err);
+    }
+
+    bool GridFactory::Stop(const char* name, const bool cancel)
+    {
+        GridError err;
+
+        bool res = Stop(name, cancel, &err);
+
+        GridError::ThrowIfNeeded(err);
+
+        return res;
+    }
+
+    bool GridFactory::Stop(const char* name, const bool cancel, GridError* err)
+    {
+        bool res = false;
+
+        factoryLock.Enter();
+
+        if (started)
+        {
+            JniErrorInfo jniErr;
+
+            SharedPointer<JniContext> ctx(JniContext::Create(NULL, 0, JniHandlers(), &jniErr));
+
+            GridError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+
+            if (err->GetCode() == GridError::GG_SUCCESS)
+            {
+                char* name0 = CopyChars(name);
+
+                bool res0 = ctx.Get()->IgnitionStop(name0, cancel, &jniErr);
+
+                ReleaseChars(name0);
+
+                GridError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+
+                if (err->GetCode() == GridError::GG_SUCCESS)
+                    res = res0;
+            }
+        }
+
+        factoryLock.Leave();
+
+        return res;
+    }
+
+    void GridFactory::StopAll(const bool cancel)
+    {
+        GridError err;
+
+        StopAll(cancel, &err);
+
+        GridError::ThrowIfNeeded(err);
+    }
+
+    void GridFactory::StopAll(const bool cancel, GridError* err)
+    {
+        factoryLock.Enter();
+
+        if (started)
+        {
+            JniErrorInfo jniErr;
+
+            SharedPointer<JniContext> ctx(JniContext::Create(NULL, 0, JniHandlers(), &jniErr));
+             
+            GridError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+
+            if (err->GetCode() == GridError::GG_SUCCESS)
+            {
+                ctx.Get()->IgnitionStopAll(cancel, &jniErr);
+
+                GridError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+            }
+        }
+
+        factoryLock.Leave();
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/1e18fa32/modules/platform/src/main/cpp/core/src/guid.cpp
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/cpp/core/src/guid.cpp b/modules/platform/src/main/cpp/core/src/guid.cpp
new file mode 100644
index 0000000..353bdab
--- /dev/null
+++ b/modules/platform/src/main/cpp/core/src/guid.cpp
@@ -0,0 +1,57 @@
+/*
+ *  Copyright (C) GridGain Systems. All Rights Reserved.
+ *  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+#include "gridgain/guid.h"
+
+namespace gridgain
+{
+    Guid::Guid() : most(0), least(0)
+    {
+        // No-op.
+    }
+
+    Guid::Guid(int64_t most, int64_t least) : most(most), least(least)
+    {
+        // No-op.
+    }
+
+    int64_t Guid::GetMostSignificantBits() const
+    {
+        return most;
+    }
+
+    int64_t Guid::GetLeastSignificantBits() const
+    {
+        return least;
+    }
+
+    int32_t Guid::GetVersion() const
+    {
+        return static_cast<int32_t>((most >> 12) & 0x0f);
+    }
+
+    int32_t Guid::GetVariant() const
+    {
+        uint64_t least0 = static_cast<uint64_t>(least);
+
+        return static_cast<int32_t>((least0 >> (64 - (least0 >> 62))) & (least >> 63));
+    }
+
+    int32_t Guid::GetHashCode() const
+    {
+        int64_t hilo = most ^ least;
+
+        return static_cast<int32_t>(hilo >> 32) ^ static_cast<int32_t>(hilo);
+    }
+
+    bool operator==(Guid& val1, Guid& val2)
+    {
+        return val1.least == val2.least && val1.most == val2.most;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/1e18fa32/modules/platform/src/main/cpp/core/src/impl/cache/cache_impl.cpp
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/cpp/core/src/impl/cache/cache_impl.cpp b/modules/platform/src/main/cpp/core/src/impl/cache/cache_impl.cpp
new file mode 100644
index 0000000..f6a388a
--- /dev/null
+++ b/modules/platform/src/main/cpp/core/src/impl/cache/cache_impl.cpp
@@ -0,0 +1,380 @@
+/*
+ *  Copyright (C) GridGain Systems. All Rights Reserved.
+ *  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+#include "gridgain/cache/cache_peek_mode.h"
+#include "gridgain/impl/cache/cache_impl.h"
+#include "gridgain/impl/interop/interop.h"
+#include "gridgain/impl/portable/portable_reader_impl.h"
+#include "gridgain/impl/utils.h"
+#include "gridgain/portable/portable.h"
+#include <gridgain/impl/portable/portable_metadata_updater_impl.h>
+
+using namespace ignite::common::concurrent;
+using namespace ignite::common::java;
+using namespace gridgain::cache;
+using namespace gridgain::cache::query;
+using namespace gridgain::impl;
+using namespace gridgain::impl::cache::query;
+using namespace gridgain::impl::interop;
+using namespace gridgain::impl::portable;
+using namespace gridgain::impl::utils;
+using namespace gridgain::portable;
+
+namespace gridgain
+{
+    namespace impl
+    {
+        namespace cache
+        {
+            /** Operation: Clear. */
+            const int32_t OP_CLEAR = 1;
+
+            /** Operation: ClearAll. */
+            const int32_t OP_CLEAR_ALL = 2;
+
+            /** Operation: ContainsKey. */
+            const int32_t OP_CONTAINS_KEY = 3;
+
+            /** Operation: ContainsKeys. */
+            const int32_t OP_CONTAINS_KEYS = 4;
+
+            /** Operation: Get. */
+            const int32_t OP_GET = 5;
+
+            /** Operation: GetAll. */
+            const int32_t OP_GET_ALL = 6;
+
+            /** Operation: GetAndPut. */
+            const int32_t OP_GET_AND_PUT = 7;
+
+            /** Operation: GetAndPutIfAbsent. */
+            const int32_t OP_GET_AND_PUT_IF_ABSENT = 8;
+
+            /** Operation: GetAndRemove. */
+            const int32_t OP_GET_AND_REMOVE = 9;
+
+            /** Operation: GetAndReplace. */
+            const int32_t OP_GET_AND_REPLACE = 10;
+
+            /** Operation: LocalEvict. */
+            const int32_t OP_LOCAL_EVICT = 16;
+
+            /** Operation: LocalClear. */
+            const int32_t OP_LOCAL_CLEAR = 20;
+
+            /** Operation: LocalClearAll. */
+            const int32_t OP_LOCAL_CLEAR_ALL = 21;
+
+            /** Operation: LocalPeek. */
+            const int32_t OP_LOCAL_PEEK = 25;
+
+            /** Operation: Put. */
+            const int32_t OP_PUT = 26;
+
+            /** Operation: PutAll. */
+            const int32_t OP_PUT_ALL = 27;
+
+            /** Operation: PutIfAbsent. */
+            const int32_t OP_PUT_IF_ABSENT = 28;
+
+            /** Operation: SCAN query. */
+            const int32_t OP_QRY_SCAN = 30;
+
+            /** Operation: SQL query. */
+            const int32_t OP_QRY_SQL = 31;
+
+            /** Operation: SQL fields query. */
+            const int32_t OP_QRY_SQL_FIELDS = 32;
+
+            /** Operation: TEXT query. */
+            const int32_t OP_QRY_TEXT = 33;
+
+            /** Operation: RemoveAll. */
+            const int32_t OP_REMOVE_ALL = 34;
+
+            /** Operation: Remove(K, V). */
+            const int32_t OP_REMOVE_2 = 35;
+
+            /** Operation: Remove(K). */
+            const int32_t OP_REMOVE_1 = 36;
+
+            /** Operation: Replace(K, V). */
+            const int32_t OP_REPLACE_2 = 37;
+
+            /** Operation: Replace(K, V, V). */
+            const int32_t OP_REPLACE_3 = 38;
+
+            CacheImpl::CacheImpl(char* name, SharedPointer<GridEnvironment> env, jobject javaRef) : 
+                name(name), env(env), javaRef(javaRef)
+            {
+                // No-op.
+            }
+
+            CacheImpl::~CacheImpl()
+            {
+                ReleaseChars(name);
+
+                JniContext::Release(javaRef);
+            }
+
+            char* CacheImpl::GetName()
+            {
+                return name;
+            }
+
+            bool CacheImpl::IsEmpty(GridError* err)
+            {
+                return Size(GG_PEEK_MODE_ALL, err) == 0;
+            }
+
+            bool CacheImpl::ContainsKey(InputOperation& inOp, GridError* err)
+            {
+                return OutOpInternal(OP_CONTAINS_KEY, inOp, err);
+            }
+
+            bool CacheImpl::ContainsKeys(InputOperation& inOp, GridError* err)
+            {
+                return OutOpInternal(OP_CONTAINS_KEYS, inOp, err);
+            }
+
+            void CacheImpl::LocalPeek(InputOperation& inOp, OutputOperation& outOp, int32_t peekModes, GridError* err)
+            {
+                OutInOpInternal(OP_LOCAL_PEEK, inOp, outOp, err);
+            }
+
+            void CacheImpl::Get(InputOperation& inOp, OutputOperation& outOp, GridError* err)
+            {
+                OutInOpInternal(OP_GET, inOp, outOp, err);
+            }
+
+            void CacheImpl::GetAll(InputOperation& inOp, OutputOperation& outOp, GridError* err)
+            {
+                OutInOpInternal(OP_GET_ALL, inOp, outOp, err);
+            }
+
+            void CacheImpl::Put(InputOperation& inOp, GridError* err)
+            {
+                OutOpInternal(OP_PUT, inOp, err);
+            }
+
+            void CacheImpl::PutAll(gridgain::impl::InputOperation& inOp, GridError* err)
+            {
+                OutOpInternal(OP_PUT_ALL, inOp, err);
+            }
+
+            void CacheImpl::GetAndPut(InputOperation& inOp, OutputOperation& outOp, GridError* err)
+            {
+                OutInOpInternal(OP_GET_AND_PUT, inOp, outOp, err);
+            }
+
+            void CacheImpl::GetAndReplace(InputOperation& inOp, OutputOperation& outOp, GridError* err)
+            {
+                OutInOpInternal(OP_GET_AND_REPLACE, inOp, outOp, err);
+            }
+
+            void CacheImpl::GetAndRemove(InputOperation& inOp, OutputOperation& outOp, GridError* err)
+            {
+                OutInOpInternal(OP_GET_AND_REMOVE, inOp, outOp, err);
+            }
+
+            bool CacheImpl::PutIfAbsent(InputOperation& inOp, GridError* err)
+            {
+                return OutOpInternal(OP_PUT_IF_ABSENT, inOp, err);
+            }
+
+            void CacheImpl::GetAndPutIfAbsent(InputOperation& inOp, OutputOperation& outOp, GridError* err)
+            {
+                OutInOpInternal(OP_GET_AND_PUT_IF_ABSENT, inOp, outOp, err);
+            }
+
+            bool CacheImpl::Replace(InputOperation& inOp, GridError* err)
+            {
+                return OutOpInternal(OP_REPLACE_2, inOp, err);
+            }
+
+            bool CacheImpl::ReplaceIfEqual(InputOperation& inOp, GridError* err)
+            {
+                return OutOpInternal(OP_REPLACE_3, inOp, err);
+            }
+
+            void CacheImpl::LocalEvict(InputOperation& inOp, GridError* err)
+            {
+                OutOpInternal(OP_LOCAL_EVICT, inOp, err);
+            }
+
+            void CacheImpl::Clear(GridError* err)
+            {
+                JniErrorInfo jniErr;
+
+                env.Get()->Context()->CacheClear(javaRef, &jniErr);
+
+                GridError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+            }
+
+            void CacheImpl::Clear(InputOperation& inOp, GridError* err)
+            {
+                OutOpInternal(OP_CLEAR, inOp, err);
+            }
+
+            void CacheImpl::ClearAll(InputOperation& inOp, GridError* err)
+            {
+                OutOpInternal(OP_CLEAR_ALL, inOp, err);
+            }
+
+            void CacheImpl::LocalClear(InputOperation& inOp, GridError* err)
+            {
+                OutOpInternal(OP_LOCAL_CLEAR, inOp, err);
+            }
+
+            void CacheImpl::LocalClearAll(InputOperation& inOp, GridError* err)
+            {
+                OutOpInternal(OP_LOCAL_CLEAR_ALL, inOp, err);
+            }
+
+            bool CacheImpl::Remove(InputOperation& inOp, GridError* err)
+            {
+                return OutOpInternal(OP_REMOVE_1, inOp, err);
+            }
+
+            bool CacheImpl::RemoveIfEqual(InputOperation& inOp, GridError* err)
+            {
+                return OutOpInternal(OP_REMOVE_2, inOp, err);
+            }
+
+            void CacheImpl::RemoveAll(InputOperation& inOp, GridError* err)
+            {
+                OutOpInternal(OP_REMOVE_ALL, inOp, err);
+            }
+
+            void CacheImpl::RemoveAll(GridError* err)
+            {
+                JniErrorInfo jniErr;
+
+                env.Get()->Context()->CacheRemoveAll(javaRef, &jniErr);
+
+                GridError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+            }
+
+            int32_t CacheImpl::Size(const int32_t peekModes, GridError* err)
+            {
+                return SizeInternal(peekModes, false, err);
+            }
+
+            int32_t CacheImpl::LocalSize(const int32_t peekModes, GridError* err)
+            {
+                return SizeInternal(peekModes, true, err);
+            }
+
+            QueryCursorImpl* CacheImpl::QuerySql(const SqlQuery& qry, GridError* err)
+            {
+                return QueryInternal(qry, OP_QRY_SQL, err);
+            }
+
+            QueryCursorImpl* CacheImpl::QueryText(const TextQuery& qry, GridError* err)
+            {
+                return QueryInternal(qry, OP_QRY_TEXT, err);
+            }
+
+            QueryCursorImpl* CacheImpl::QueryScan(const ScanQuery& qry, GridError* err)
+            {
+                return QueryInternal(qry, OP_QRY_SCAN, err);
+            }
+
+            int64_t CacheImpl::WriteTo(InteropMemory* mem, InputOperation& inOp, GridError* err)
+            {
+                PortableMetadataManager* metaMgr = env.Get()->GetMetadataManager();
+
+                int32_t metaVer = metaMgr->GetVersion();
+
+                InteropOutputStream out(mem);
+                PortableWriterImpl writer(&out, metaMgr);
+                
+                inOp.ProcessInput(writer);
+
+                out.Synchronize();
+
+                if (metaMgr->IsUpdatedSince(metaVer))
+                {
+                    PortableMetadataUpdaterImpl metaUpdater(env, javaRef);
+
+                    if (!metaMgr->ProcessPendingUpdates(&metaUpdater, err))
+                        return 0;
+                }
+
+                return mem->PointerLong();
+            }
+
+            void CacheImpl::ReadFrom(InteropMemory* mem, OutputOperation& outOp)
+            {
+                InteropInputStream in(mem);
+
+                PortableReaderImpl reader(&in);
+
+                outOp.ProcessOutput(reader);
+            }
+
+            int CacheImpl::SizeInternal(const int32_t peekModes, const bool loc, GridError* err)
+            {
+                JniErrorInfo jniErr;
+
+                int res = env.Get()->Context()->CacheSize(javaRef, peekModes, loc, &jniErr);
+
+                GridError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+
+                if (jniErr.code == IGNITE_JNI_ERR_SUCCESS)
+                    return res;
+                else
+                    return -1;
+            }
+
+            bool CacheImpl::OutOpInternal(const int32_t opType, InputOperation& inOp, GridError* err)
+            {
+                JniErrorInfo jniErr;
+
+                SharedPointer<InteropMemory> mem = env.Get()->AllocateMemory();
+
+                int64_t outPtr = WriteTo(mem.Get(), inOp, err);
+
+                if (outPtr)
+                {
+                    long long res = env.Get()->Context()->TargetInStreamOutLong(javaRef, opType, outPtr, &jniErr);
+
+                    GridError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+
+                    if (jniErr.code == IGNITE_JNI_ERR_SUCCESS)
+                        return res == 1;
+                }
+
+                return false;
+            }
+
+            void CacheImpl::OutInOpInternal(const int32_t opType, InputOperation& inOp, OutputOperation& outOp, 
+                GridError* err)
+            {
+                JniErrorInfo jniErr;
+
+                SharedPointer<InteropMemory> outMem = env.Get()->AllocateMemory();
+                SharedPointer<InteropMemory> inMem = env.Get()->AllocateMemory();
+
+                int64_t outPtr = WriteTo(outMem.Get(), inOp, err);
+
+                if (outPtr)
+                {
+                    env.Get()->Context()->TargetInStreamOutStream(javaRef, opType, WriteTo(outMem.Get(), inOp, err), 
+                        inMem.Get()->PointerLong(), &jniErr);
+
+                    GridError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
+
+                    if (jniErr.code == IGNITE_JNI_ERR_SUCCESS)
+                        ReadFrom(inMem.Get(), outOp);
+                }
+            }
+        }
+    }
+}
\ No newline at end of file