THRIFT-812 Demo of Thrift over ZeroMQ (C#)
Patch: Nils Huegelmann 


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1095179 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/contrib/zeromq/csharp/Main.cs b/contrib/zeromq/csharp/Main.cs
new file mode 100644
index 0000000..e66cfe0
--- /dev/null
+++ b/contrib/zeromq/csharp/Main.cs
@@ -0,0 +1,60 @@
+using System;
+using System.Threading;
+using Thrift.Protocol;
+using ZMQ;
+using ZmqServer;
+using ZmqClient;
+
+namespace ZmqServer
+{
+	class MainClass
+	{
+		public static void Main (string[] args)
+		{
+			new Thread(Server.serve).Start();
+			Client.work();
+		}
+		
+		static class Server{
+			public static void serve(){
+				StorageHandler s=new StorageHandler();
+				Storage.Processor p=new Storage.Processor(s);
+				
+				ZMQ.Context c=new ZMQ.Context();
+				
+				TZmqServer tzs=new TZmqServer(p,c,"tcp://127.0.0.1:9090",ZMQ.SocketType.PAIR);
+				tzs.Serve();
+			}
+			
+			class StorageHandler:Storage.Iface{
+				int val=0;
+				
+				public void incr(int amount){
+					val+=amount;
+					Console.WriteLine("incr({0})",amount);
+				}
+				
+				public int get(){
+					return val;
+				} 
+			}
+		}
+		
+		static class Client{
+			public static void work()
+			{
+				Context ctx=new Context();
+				TZmqClient tzc=new TZmqClient(ctx,"tcp://127.0.0.1:9090",SocketType.PAIR);
+				TBinaryProtocol p=new TBinaryProtocol(tzc);
+				
+				Storage.Client client=new Storage.Client(p);
+				tzc.Open();
+				
+				Console.WriteLine(client.@get());
+				client.incr(1);
+				client.incr(41);
+				Console.WriteLine(client.@get());
+			}
+		}
+	}
+}