-using System;\r
-using Thrift;\r
-using Thrift.Protocol;\r
-using Thrift.Server;\r
-using Thrift.Transport;\r
-\r
-\r
-namespace CSharpTutorial\r
-{\r
- public class CSharpClient\r
- {\r
- public static void Main()\r
- {\r
- try\r
- {\r
- TTransport transport = new TSocket("localhost", 9090);\r
- TProtocol protocol = new TBinaryProtocol(transport);\r
- Calculator.Client client = new Calculator.Client(protocol);\r
-\r
- transport.Open();\r
-\r
- client.ping();\r
- Console.WriteLine("ping()");\r
-\r
- int sum = client.add(1, 1);\r
- Console.WriteLine("1+1={0}", sum);\r
-\r
- Work work = new Work();\r
-\r
- work.op = Operation.DIVIDE;\r
- work.num1 = 1;\r
- work.num2 = 0;\r
- try\r
- {\r
- int quotient = client.calculate(1, work);\r
- Console.WriteLine("Whoa we can divide by 0");\r
- }\r
- catch (InvalidOperation io)\r
- {\r
- Console.WriteLine("Invalid operation: " + io.why);\r
- }\r
-\r
- work.op = Operation.SUBTRACT;\r
- work.num1 = 15;\r
- work.num2 = 10;\r
- try\r
- {\r
- int diff = client.calculate(1, work);\r
- Console.WriteLine("15-10={0}", diff);\r
- }\r
- catch (InvalidOperation io)\r
- {\r
- Console.WriteLine("Invalid operation: " + io.why);\r
- }\r
-\r
- SharedStruct log = client.getStruct(1);\r
- Console.WriteLine("Check log: {0}", log.value);\r
-\r
- transport.Close();\r
- }\r
- catch (TApplicationException x)\r
- {\r
- Console.WriteLine(x.StackTrace);\r
- }\r
-\r
- }\r
- }\r
-}
\ No newline at end of file
+using System;
+using Thrift;
+using Thrift.Protocol;
+using Thrift.Server;
+using Thrift.Transport;
+
+
+namespace CSharpTutorial
+{
+ public class CSharpClient
+ {
+ public static void Main()
+ {
+ try
+ {
+ TTransport transport = new TSocket("localhost", 9090);
+ TProtocol protocol = new TBinaryProtocol(transport);
+ Calculator.Client client = new Calculator.Client(protocol);
+
+ transport.Open();
+
+ client.ping();
+ Console.WriteLine("ping()");
+
+ int sum = client.add(1, 1);
+ Console.WriteLine("1+1={0}", sum);
+
+ Work work = new Work();
+
+ work.op = Operation.DIVIDE;
+ work.num1 = 1;
+ work.num2 = 0;
+ try
+ {
+ int quotient = client.calculate(1, work);
+ Console.WriteLine("Whoa we can divide by 0");
+ }
+ catch (InvalidOperation io)
+ {
+ Console.WriteLine("Invalid operation: " + io.why);
+ }
+
+ work.op = Operation.SUBTRACT;
+ work.num1 = 15;
+ work.num2 = 10;
+ try
+ {
+ int diff = client.calculate(1, work);
+ Console.WriteLine("15-10={0}", diff);
+ }
+ catch (InvalidOperation io)
+ {
+ Console.WriteLine("Invalid operation: " + io.why);
+ }
+
+ SharedStruct log = client.getStruct(1);
+ Console.WriteLine("Check log: {0}", log.value);
+
+ transport.Close();
+ }
+ catch (TApplicationException x)
+ {
+ Console.WriteLine(x.StackTrace);
+ }
+
+ }
+ }
+}
-\feffusing System;\r
-using System.Collections.Generic;\r
-using Thrift.Server;\r
-using Thrift.Transport;\r
-\r
-namespace CSharpTutorial\r
-{\r
- public class CalculatorHandler : Calculator.Iface\r
- {\r
- Dictionary<int, SharedStruct> log;\r
-\r
- public CalculatorHandler()\r
- {\r
- log = new Dictionary<int, SharedStruct>();\r
- }\r
-\r
- public void ping()\r
- {\r
- Console.WriteLine("ping()");\r
- }\r
-\r
- public int add(int n1, int n2)\r
- {\r
- Console.WriteLine("add({0},{1})", n1, n2);\r
- return n1 + n2;\r
- }\r
-\r
- public int calculate(int logid, Work work)\r
- {\r
- Console.WriteLine("calculate({0}, [{1},{2},{3}])", logid, work.op, work.num1, work.num2);\r
- int val = 0;\r
- switch (work.op)\r
- {\r
- case Operation.ADD:\r
- val = work.num1 + work.num2;\r
- break;\r
-\r
- case Operation.SUBTRACT:\r
- val = work.num1 - work.num2;\r
- break;\r
-\r
- case Operation.MULTIPLY:\r
- val = work.num1 * work.num2;\r
- break;\r
-\r
- case Operation.DIVIDE:\r
- if (work.num2 == 0)\r
- {\r
- InvalidOperation io = new InvalidOperation();\r
- io.what = (int)work.op;\r
- io.why = "Cannot divide by 0";\r
- throw io;\r
- }\r
- val = work.num1 / work.num2;\r
- break;\r
-\r
- default:\r
- {\r
- InvalidOperation io = new InvalidOperation();\r
- io.what = (int)work.op;\r
- io.why = "Unknown operation";\r
- throw io;\r
- }\r
- }\r
-\r
- SharedStruct entry = new SharedStruct();\r
- entry.key = logid;\r
- entry.value = val.ToString();\r
- log[logid] = entry;\r
-\r
- return val;\r
- }\r
-\r
- public SharedStruct getStruct(int key)\r
- {\r
- Console.WriteLine("getStruct({0})", key);\r
- return log[key];\r
- }\r
-\r
- public void zip()\r
- {\r
- Console.WriteLine("zip()");\r
- }\r
- }\r
-\r
- public class CSharpServer\r
- {\r
- public static void Main()\r
- {\r
- try\r
- {\r
- CalculatorHandler handler = new CalculatorHandler();\r
- Calculator.Processor processor = new Calculator.Processor(handler);\r
- TServerTransport serverTransport = new TServerSocket(9090);\r
- TServer server = new TSimpleServer(processor, serverTransport);\r
-\r
- // Use this for a multithreaded server\r
- // server = new TThreadPoolServer(processor, serverTransport);\r
-\r
- Console.WriteLine("Starting the server...");\r
- server.Serve();\r
- }\r
- catch (Exception x)\r
- {\r
- Console.WriteLine(x.StackTrace);\r
- }\r
- Console.WriteLine("done.");\r
- }\r
- }\r
-}\r
+using System;
+using System.Collections.Generic;
+using Thrift.Server;
+using Thrift.Transport;
+
+namespace CSharpTutorial
+{
+ public class CalculatorHandler : Calculator.Iface
+ {
+ Dictionary<int, SharedStruct> log;
+
+ public CalculatorHandler()
+ {
+ log = new Dictionary<int, SharedStruct>();
+ }
+
+ public void ping()
+ {
+ Console.WriteLine("ping()");
+ }
+
+ public int add(int n1, int n2)
+ {
+ Console.WriteLine("add({0},{1})", n1, n2);
+ return n1 + n2;
+ }
+
+ public int calculate(int logid, Work work)
+ {
+ Console.WriteLine("calculate({0}, [{1},{2},{3}])", logid, work.op, work.num1, work.num2);
+ int val = 0;
+ switch (work.op)
+ {
+ case Operation.ADD:
+ val = work.num1 + work.num2;
+ break;
+
+ case Operation.SUBTRACT:
+ val = work.num1 - work.num2;
+ break;
+
+ case Operation.MULTIPLY:
+ val = work.num1 * work.num2;
+ break;
+
+ case Operation.DIVIDE:
+ if (work.num2 == 0)
+ {
+ InvalidOperation io = new InvalidOperation();
+ io.what = (int)work.op;
+ io.why = "Cannot divide by 0";
+ throw io;
+ }
+ val = work.num1 / work.num2;
+ break;
+
+ default:
+ {
+ InvalidOperation io = new InvalidOperation();
+ io.what = (int)work.op;
+ io.why = "Unknown operation";
+ throw io;
+ }
+ }
+
+ SharedStruct entry = new SharedStruct();
+ entry.key = logid;
+ entry.value = val.ToString();
+ log[logid] = entry;
+
+ return val;
+ }
+
+ public SharedStruct getStruct(int key)
+ {
+ Console.WriteLine("getStruct({0})", key);
+ return log[key];
+ }
+
+ public void zip()
+ {
+ Console.WriteLine("zip()");
+ }
+ }
+
+ public class CSharpServer
+ {
+ public static void Main()
+ {
+ try
+ {
+ CalculatorHandler handler = new CalculatorHandler();
+ Calculator.Processor processor = new Calculator.Processor(handler);
+ TServerTransport serverTransport = new TServerSocket(9090);
+ TServer server = new TSimpleServer(processor, serverTransport);
+
+ // Use this for a multithreaded server
+ // server = new TThreadPoolServer(processor, serverTransport);
+
+ Console.WriteLine("Starting the server...");
+ server.Serve();
+ }
+ catch (Exception x)
+ {
+ Console.WriteLine(x.StackTrace);
+ }
+ Console.WriteLine("done.");
+ }
+ }
+}