IGNITE-7089 .NET: Thin client: LINQPad example
authorPavel Tupitsyn <ptupitsyn@apache.org>
Wed, 10 Jan 2018 16:58:17 +0000 (19:58 +0300)
committerPavel Tupitsyn <ptupitsyn@apache.org>
Wed, 10 Jan 2018 16:58:17 +0000 (19:58 +0300)
modules/platforms/dotnet/Apache.Ignite.Core/NuGet/LINQPad/BinaryModeExample.linq
modules/platforms/dotnet/Apache.Ignite.Core/NuGet/LINQPad/ComputeExample.linq
modules/platforms/dotnet/Apache.Ignite.Core/NuGet/LINQPad/PutGetExample.linq
modules/platforms/dotnet/Apache.Ignite.Core/NuGet/LINQPad/QueryExample.linq
modules/platforms/dotnet/Apache.Ignite.Core/NuGet/LINQPad/ThinClient.linq [new file with mode: 0644]

index 4b2291e..f72c2e1 100644 (file)
@@ -28,7 +28,6 @@
 /// 
 /// Requirements:
 /// * Java Runtime Environment (JRE): http://www.oracle.com/technetwork/java/javase/downloads/index.html (x86 for regular LINQPad, x64 for AnyCPU LINQPad)
-/// * Microsoft Visual C++ 2010 Redistributable Package: http://www.microsoft.com/en-us/download/details.aspx?id=14632 (x86 for regular LINQPad, x64 for AnyCPU LINQPad)
 /// </summary>
 
 // Force new LINQPad query process to reinit JVM.
index 98e3d29..cf5a45f 100644 (file)
@@ -30,7 +30,6 @@
 /// 
 /// Requirements:
 /// * Java Runtime Environment (JRE): http://www.oracle.com/technetwork/java/javase/downloads/index.html (x86 for regular LINQPad, x64 for AnyCPU LINQPad)
-/// * Microsoft Visual C++ 2010 Redistributable Package: http://www.microsoft.com/en-us/download/details.aspx?id=14632 (x86 for regular LINQPad, x64 for AnyCPU LINQPad)
 /// </summary>
 
 void Main()
index ef37a3c..ea396da 100644 (file)
@@ -28,7 +28,6 @@
 /// 
 /// Requirements:
 /// * Java Runtime Environment (JRE): http://www.oracle.com/technetwork/java/javase/downloads/index.html (x86 for regular LINQPad, x64 for AnyCPU LINQPad)
-/// * Microsoft Visual C++ 2010 Redistributable Package: http://www.microsoft.com/en-us/download/details.aspx?id=14632 (x86 for regular LINQPad, x64 for AnyCPU LINQPad)
 /// </summary>
 
 void Main()
index b3d63ba..ae48596 100644 (file)
@@ -31,7 +31,6 @@
 /// 
 /// Requirements:
 /// * Java Runtime Environment (JRE): http://www.oracle.com/technetwork/java/javase/downloads/index.html (x86 for regular LINQPad, x64 for AnyCPU LINQPad)
-/// * Microsoft Visual C++ 2010 Redistributable Package: http://www.microsoft.com/en-us/download/details.aspx?id=14632 (x86 for regular LINQPad, x64 for AnyCPU LINQPad)
 /// </summary>
 
 void Main()
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/NuGet/LINQPad/ThinClient.linq b/modules/platforms/dotnet/Apache.Ignite.Core/NuGet/LINQPad/ThinClient.linq
new file mode 100644 (file)
index 0000000..e557e82
--- /dev/null
@@ -0,0 +1,56 @@
+<Query Kind="Statements">
+  <NuGetReference>Apache.Ignite</NuGetReference>
+  <Namespace>Apache.Ignite.Core</Namespace>
+  <Namespace>Apache.Ignite.Core.Client</Namespace>
+  <Namespace>Apache.Ignite.Core.Binary</Namespace>
+  <Namespace>Apache.Ignite.Core.Cache.Query</Namespace>
+</Query>
+
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*      http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+/// <summary>
+/// This example demonstrates thin client protocol connection.
+/// Thin client connects to an existing Ignite node and does not start JVM in process.
+///
+/// This example requires running Ignite node.
+/// You can start an Ignite node with ignite.bat or Apache.Ignite.exe.
+/// Alternatively, open QueryExample in a separate tab, add Thread.Sleep(-1) in there and run.
+/// </summary>
+
+var cfg = new IgniteClientConfiguration { Host = "127.0.0.1" };
+using (var client = Ignition.StartClient(cfg))
+{
+       // Create cache for demo purpose.
+       var fooCache = client.GetOrCreateCache<int, object>("thin-client-test").WithKeepBinary<int, IBinaryObject>();
+       fooCache[1] = client.GetBinary().GetBuilder("foo")
+               .SetStringField("Name", "John")
+               .SetTimestampField("Birthday", new DateTime(2001, 5, 15).ToUniversalTime())
+               .Build();
+
+       var cacheNames = client.GetCacheNames();
+       "Diplaying first 5 items from each cache:".Dump();
+       
+       foreach (var name in cacheNames)
+       {
+               var cache = client.GetCache<object, object>(name).WithKeepBinary<object, object>();
+               var items = cache.Query(new ScanQuery<object, object>()).Take(5)
+                       .ToDictionary(x => x.Key.ToString(), x => x.Value.ToString());
+               
+               items.Dump(name);
+       }
+}