From f7efd9e27b96e43bb92844c52a186af1aa62b483 Mon Sep 17 00:00:00 2001 From: "Charles E. Rolke" Date: Wed, 1 Dec 2010 19:54:13 +0000 Subject: Bring QPID .NET Binding examples more in line with cpp examples. 1. Return 0/1 from main to indicate success/failure, where possible. 2. Call sender's session.Sync() after transmitting messages and not waiting for responses. 3. Add third arg connectionOptions as used in cpp examples. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1041141 13f79535-47bb-0310-9956-ffa450edef68 --- .../csharp.direct.receiver.cs | 4 ++- .../csharp.direct.sender/csharp.direct.sender.cs | 5 +++- .../csharp.example.client/csharp.example.client.cs | 9 +++++-- .../csharp.example.declare_queues.cs | 4 ++- .../csharp.example.drain/csharp.example.drain.cs | 4 ++- .../csharp.example.server/csharp.example.server.cs | 11 +++++--- .../csharp.example.spout/csharp.example.spout.cs | 6 +++-- .../csharp.map.callback.receiver.cs | 15 +++++++---- .../csharp.map.callback.sender.cs | 31 +++++++++++++++------- .../csharp.map.receiver/csharp.map.recevier.cs | 7 ++++- .../csharp.map.sender/csharp.map.sender.cs | 14 ++++++++-- .../visualbasic.example.client.vb | 11 +++++--- 12 files changed, 88 insertions(+), 33 deletions(-) diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs index cb4cb3e37d..592a05ab29 100644 --- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs +++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs @@ -31,7 +31,7 @@ namespace CSharpDirect // Receive 10 messages from localhost:5672, amq.direct/key // Messages are assumed to be printable strings. // - static void Main(string[] args) + static int Main(string[] args) { String host = "localhost:5672"; String addr = "amq.direct/key"; @@ -66,12 +66,14 @@ namespace CSharpDirect Console.WriteLine("Rcvd msg {0} : {1}", i, msg2.GetContent()); } connection.Close(); + return 0; } } catch (Exception e) { Console.WriteLine("Exception {0}.", e); if (null != connection) connection.Close(); } + return 1; } } } \ No newline at end of file diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs index ade2befd25..a0ac742a45 100644 --- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs +++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs @@ -31,7 +31,7 @@ namespace csharp.direct.sender // Send 10 messages from localhost:5672, amq.direct/key // Messages are assumed to be printable strings. // - static void Main(string[] args) + static int Main(string[] args) { String host = "localhost:5672"; String addr = "amq.direct/key"; @@ -65,13 +65,16 @@ namespace csharp.direct.sender Message message = new Message(String.Format("Test Message {0}", i)); sender.Send(message); } + session.Sync(); connection.Close(); + return 0; } } catch (Exception e) { Console.WriteLine("Exception {0}.", e); if (null != connection) connection.Close(); } + return 1; } } } diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs index 79b798e540..19a5267297 100644 --- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs +++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs @@ -24,13 +24,16 @@ using Org.Apache.Qpid.Messaging; namespace Org.Apache.Qpid.Messaging.Examples { class Client { - static void Main(string[] args) { + static int Main(string[] args) { String url = "amqp:tcp:127.0.0.1:5672"; + String connectionOptions = ""; if (args.Length > 0) url = args[0]; + if (args.Length > 1) + connectionOptions = args[1]; - Connection connection = new Connection(url); + Connection connection = new Connection(url, connectionOptions); try { connection.Open(); @@ -59,12 +62,14 @@ namespace Org.Apache.Qpid.Messaging.Examples { Console.WriteLine("{0} -> {1}", request.GetContent(), response.GetContent()); } connection.Close(); + return 0; } catch (Exception e) { Console.WriteLine("Exception {0}.", e); connection.Close(); } + return 1; } } } diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs index 4a20e32182..06267bf719 100644 --- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs +++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs @@ -27,7 +27,7 @@ namespace Org.Apache.Qpid.Messaging.Examples { // // Sample invocation: csharp.example.declare_queues.exe localhost:5672 my-queue // - static void Main(string[] args) { + static int Main(string[] args) { string addr = "localhost:5672"; string queue = "my-queue"; @@ -46,6 +46,7 @@ namespace Org.Apache.Qpid.Messaging.Examples { Sender sender = session.CreateSender(queueName); session.Close(); connection.Close(); + return 0; } catch (Exception e) { @@ -53,6 +54,7 @@ namespace Org.Apache.Qpid.Messaging.Examples { if (null != connection) connection.Close(); } + return 1; } } } diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs index dc38590f0a..04a0764f7c 100644 --- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs +++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs @@ -30,7 +30,7 @@ namespace Org.Apache.Qpid.Messaging.Examples { // // Sample invocation: csharp.example.drain.exe --broker localhost:5672 --timeout 30 my-queue // - static void Main(string[] args) { + static int Main(string[] args) { Options options = new Options(args); Connection connection = null; @@ -74,6 +74,7 @@ namespace Org.Apache.Qpid.Messaging.Examples { receiver.Close(); session.Close(); connection.Close(); + return 0; } catch (Exception e) { @@ -81,6 +82,7 @@ namespace Org.Apache.Qpid.Messaging.Examples { if (null != connection) connection.Close(); } + return 1; } } } diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs index 4ec56491ac..1d93649195 100644 --- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs +++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs @@ -24,14 +24,18 @@ using Org.Apache.Qpid.Messaging; namespace Org.Apache.Qpid.Messaging.Examples { class Server { - static void Main(string[] args) { - String url = "amqp:tcp:127.0.0.1:5672"; + static int Main(string[] args) { + string url = "amqp:tcp:127.0.0.1:5672"; + string connectionOptions = ""; if (args.Length > 0) url = args[0]; + // address args[1] is not used in this example + if (args.Length > 2) + connectionOptions = args[2]; try { - Connection connection = new Connection(url); + Connection connection = new Connection(url, connectionOptions); connection.Open(); Session session = connection.CreateSession(); Receiver receiver = session.CreateReceiver("service_queue; {create: always}"); @@ -56,6 +60,7 @@ namespace Org.Apache.Qpid.Messaging.Examples { } catch (Exception e) { Console.WriteLine("Exception {0}.", e); } + return 1; } } } diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs index 830e943705..531abadd4c 100644 --- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs +++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs @@ -63,13 +63,13 @@ namespace Org.Apache.Qpid.Messaging.Examples { } } - static void Main(string[] args) { + static int Main(string[] args) { Options options = new Options(args); Connection connection = null; try { - connection = new Connection(options.Url); + connection = new Connection(options.Url, options.ConnectionOptions); connection.Open(); Session session = connection.CreateSession(); Sender sender = session.CreateSender(options.Address); @@ -107,11 +107,13 @@ namespace Org.Apache.Qpid.Messaging.Examples { } session.Sync(); connection.Close(); + return 0; } catch (Exception e) { Console.WriteLine("Exception {0}.", e); if (null != connection) connection.Close(); } + return 1; } } } diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs index 965b494dc7..b1ba949e07 100644 --- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs +++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs @@ -186,18 +186,19 @@ namespace Org.Apache.Qpid.Messaging.Examples /// receive messages. /// /// Main program arguments - public void TestProgram(string[] args) + public int TestProgram(string[] args) { string url = "amqp:tcp:localhost:5672"; string addr = "amq.direct/map_example"; int nSec = 30; + string connectionOptions = ""; if (1 == args.Length) { if (args[0].Equals("-h") || args[0].Equals("-H") || args[0].Equals("/?")) { usage(url, addr, nSec); - return; + return 1; } } @@ -207,11 +208,13 @@ namespace Org.Apache.Qpid.Messaging.Examples addr = args[1]; if (args.Length > 2) nSec = System.Convert.ToInt32(args[2]); + if (args.Length > 3) + connectionOptions = args[3]; // // Create and open an AMQP connection to the broker URL // - Connection connection = new Connection(url); + Connection connection = new Connection(url, connectionOptions); connection.Open(); // @@ -258,6 +261,7 @@ namespace Org.Apache.Qpid.Messaging.Examples // receiver.Close(); connection.Close(); + return 0; } } @@ -268,13 +272,14 @@ namespace Org.Apache.Qpid.Messaging.Examples /// Main program /// /// Main prgram args - static void Main(string[] args) + static int Main(string[] args) { // Invoke 'TestProgram' as non-static class. ReceiverProcess mainProc = new ReceiverProcess(); - mainProc.TestProgram(args); + int result = mainProc.TestProgram(args); + return result; } } } diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs index c6b764a567..4cc88564e7 100644 --- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs +++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs @@ -31,7 +31,7 @@ namespace Org.Apache.Qpid.Messaging.Examples // // usage // - static void usage(string url, string addr, UInt32 count) + static void usage(string url, string addr, UInt32 count, string connOpts) { Console.WriteLine("usage: {0} [url [addr [count]]]", @@ -43,29 +43,31 @@ namespace Org.Apache.Qpid.Messaging.Examples Console.WriteLine(" url = target address for 'new Connection(url)'"); Console.WriteLine(" addr = address for 'session.CreateReceiver(addr)'"); Console.WriteLine(" count = number of messages to send"); + Console.WriteLine(" connectionOptions = options list"); Console.WriteLine(); Console.WriteLine("Default values:"); - Console.WriteLine(" {0} {1} {2} {3}", + Console.WriteLine(" {0} {1} {2} {3} {4}", System.Diagnostics.Process.GetCurrentProcess().ProcessName, - url, addr, count); + url, addr, count, connOpts); } // // TestProgram // - public void TestProgram(string[] args) + public int TestProgram(string[] args) { string url = "amqp:tcp:localhost:5672"; string addr = "amq.direct/map_example"; UInt32 count = 1; + string connectionOptions = ""; if (1 == args.Length) { if (args[0].Equals("-h") || args[0].Equals("-H") || args[0].Equals("/?")) { - usage(url, addr, count); - return; + usage(url, addr, count, connectionOptions); + return 1; } } @@ -75,12 +77,13 @@ namespace Org.Apache.Qpid.Messaging.Examples addr = args[1]; if (args.Length > 2) count = System.Convert.ToUInt32(args[2]); - + if (args.Length > 3) + connectionOptions = args[3]; // // Create and open an AMQP connection to the broker URL // - Connection connection = new Connection(url); + Connection connection = new Connection(url, connectionOptions); connection.Open(); // @@ -159,10 +162,17 @@ namespace Org.Apache.Qpid.Messaging.Examples for (UInt32 i = 0; i 0) url = args[0]; if (args.Length > 1) address = args[1]; + if (args.Length > 2) + connectionOptions = args[3]; // // Create and open an AMQP connection to the broker URL @@ -76,6 +80,7 @@ namespace Org.Apache.Qpid.Messaging.examples // receiver.Close(); connection.Close(); + return 0; } } } diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs index addac446b5..9001eb8e0b 100644 --- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs +++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs @@ -34,19 +34,23 @@ namespace Org.Apache.Qpid.Messaging.examples // The map message contains simple types, a nested amqp/map, // an ampq/list, and specific instances of each supported type. // - static void Main(string[] args) + static int Main(string[] args) { string url = "amqp:tcp:localhost:5672"; string address = "message_queue; {create: always}"; + string connectionOptions = ""; + if (args.Length > 0) url = args[0]; if (args.Length > 1) address = args[1]; + if (args.Length > 2) + connectionOptions = args[2]; // // Create and open an AMQP connection to the broker URL // - Connection connection = new Connection(url); + Connection connection = new Connection(url, connectionOptions); connection.Open(); // @@ -127,10 +131,16 @@ namespace Org.Apache.Qpid.Messaging.examples Message message = new Message(content); sender.Send(message, true); + // + // Wait until broker receives all messages. + // + session.Sync(); + // // Close the connection. // connection.Close(); + return 0; } } } diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb index ccdc0d673c..f32cfd8bce 100644 --- a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb +++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb @@ -24,14 +24,16 @@ Imports Org.Apache.Qpid.Messaging Namespace Org.Apache.Qpid.Messaging.Examples Module Module1 Class Client - Public Shared Sub Main(ByVal args() As String) + Public Shared Function Main(ByVal args() As String) As Integer Dim url As String = "amqp:tcp:127.0.0.1:5672" + Dim connectionOptions As String = "" If args.Length > 0 Then url = args(0) + If args.Length > 1 Then connectionOptions = args(1) Dim connection As Connection Try - connection = New Connection(url) + connection = New Connection(url, connectionOptions) connection.Open() Dim session As Session = connection.CreateSession() @@ -58,12 +60,13 @@ Namespace Org.Apache.Qpid.Messaging.Examples Console.WriteLine("{0} -> {1}", request.GetContent(), response.GetContent()) Next i connection.Close() - + Main = 0 Catch e As Exception Console.WriteLine("Exception {0}.", e) connection.Close() + Main = 1 End Try - End Sub + End Function End Class End Module End Namespace -- cgit v1.2.1