From e40ff185da83aeddc994e05c8152d3eff8dcb3e3 Mon Sep 17 00:00:00 2001 From: "Charles E. Rolke" Date: Fri, 3 Dec 2010 17:06:29 +0000 Subject: Add more details about the .NET Binding for the C++ Messaging Client. Describe what the binding is, describe some of the components and how they are related, describe the example programs and what they do. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1041911 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/doc/book/src/Programming-In-Apache-Qpid.xml | 318 +++++++++++++++++++++-- 1 file changed, 290 insertions(+), 28 deletions(-) (limited to 'qpid') diff --git a/qpid/doc/book/src/Programming-In-Apache-Qpid.xml b/qpid/doc/book/src/Programming-In-Apache-Qpid.xml index c0a99a50d5..f90fbec669 100644 --- a/qpid/doc/book/src/Programming-In-Apache-Qpid.xml +++ b/qpid/doc/book/src/Programming-In-Apache-Qpid.xml @@ -3762,18 +3762,279 @@ using (TransactionScope ts = new TransactionScope()) The .NET Binding for the C++ Messaging Client - The C++ Messaging Client unmanaged code is exposed to .NET - code through an interoperability DLL. This DLL wrapper - is a thin layer that serves primarily by translating between - the managed .NET programs and the unmanaged C++ libraries. - - - This chapter describes the mapping provided by the .NET binding classes. + The .NET Binding for the C++ Qpid Messaging Client is an intermediary program designed + to make access to C++ Qpid Messaging methods simple and in a way familiar to the programmer. + The .NET Binding creates and manipulates actual C++ Qpid Messaging API objects so that a .NET + program will operate the same as if the program were written in native C++.
- .NET Binding Class: Address + .NET Binding for the C++ Messaging Client Component Architecture + +This diagram illustrates the code and library components of the binding +and the hierarchical relationships between them. + + + .NET Binding for the C++ Messaging Client Component Architecture + + + + Component Name + Component Function + + + + + QPID Messaging C++ Libraries + The QPID Messaging C++ core run time system + + + Unmanaged C++ Example Source Programs + Ordinary C++ programs that illustrate using qpid/cpp Messaging directly + in a native Windows environment. + + + .NET Messaging Binding Library + The .NET Messaging library provides interoprability between managed .NET + programs and the unmanaged, native Messaging C++ run time system. .NET programs + create a Reference to this library thereby exposing all of the native C++ + Messaging functionality to programs written in any .NET language. + + + .NET Messaging Managed Callback Library + An extension of the .NET Messaging Binding Library that provides message + callbacks in a managed .NET environment. This component is written purely in C#. + + + Managed C# .NET Example Source Programs + Various C# example programs that illustrate using .NET Messaging Binding in the .NET environment. + + + +
+
+ +
+ .NET Binding for the C++ Messaging Client Examples + + This chapter describes the various sample programs that are available to + illustrate common Qpid Messaging usage. + + + Example : Client - Server + + + + + + Example + Client - Server + + + + + csharp.example.server + Creates a Receiver and listens for messages. + Upon message reception the message content is converted to upper case + and forwarded to the received message's ReplyTo address. + + + csharp.example.client + Sends a series of messages to the Server and prints the original message + content and the received message content. + + + +
+ + + Example : Map Sender – Map Receiver + + + + + + Example + Map Sender - Map Receiver + + + + + csharp.map.receiver + Creates a Receiver and listens for a map message. + Upon message reception the message is decoded and displayed on the console. + + + csharp.map.sender + Creates a map message and sends it to map.receiver. + The map message contains values for every supported .NET Messaging + Binding data type. + + + +
+ + + Example : Spout - Drain + + + + + + Example + Spout - Drain + + + + + csharp.example.spout + Spout is a more complex example of code that generates a series of messages + and sends them to peer program Drain. Flexible command line arguments allow + the user to specify a variety of message and program options. + + + csharp.example.drain + Drain is a more complex example of code that receives a series of messages + and displays their contents on the console. + + + +
+ + + Example : Map Callback Sender – Map Callback Receiver + + + + + + Example + Map Callback Sender - Map Callback Receiver + + + + + csharp.map.callback.receiver + Creates a Receiver and listens for a map message. + Upon message reception the message is decoded and displayed on the console. + This example illustrates the use of the C# managed code callback mechanism + provided by .NET Messaging Binding Managed Callback Library. + + + csharp.map.callback.sender + Creates a map message and sends it to map_receiver. + The map message contains values for every supported .NET Messaging + Binding data type. + + + +
+ + + Example - Declare Queues + + + + + + Example + Declare Queues + + + + + csharp.example.declare_queues + A program to illustrate creating objects on a broker. + This program creates a queue used by spout and drain. + + + +
+ + + Example: Direct Sender - Direct Receiver + + + + + + Example + Direct Sender - Direct Receiver + + + + + csharp.direct.receiver + Creates a Receiver and listens for a messages. + Upon message reception the message is decoded and displayed on the console. + + + csharp.direct.sender + Creates a series of messages and sends them to csharp.direct.receiver. + + + +
+ + + Example: Hello World + + + + + + Example + Hello World + + + + + csharp.example.helloworld + A program to send a message and to receive the same message. + + + +
+ +
+ +
+ .NET Binding Class Mapping to Underlying C++ Messaging API + This chapter describes the specific mappings between classes in the .NET + Binding and the underlying C++ Messaging API. +
+ .NET Binding for the C++ Messaging API Class: Address - .NET Binding Class: Address + .NET Binding for the C++ Messaging API Class: Address @@ -3978,9 +4239,9 @@ using (TransactionScope ts = new TransactionScope())
- .NET Binding Class: Connection + .NET Binding for the C++ Messaging API Class: Connection - .NET Binding Class: Connection + .NET Binding for the C++ Messaging API Class: Connection @@ -4040,9 +4301,9 @@ using (TransactionScope ts = new TransactionScope()) public Connection(string url, Dictionary<string, object> options); + Constructor - Constructor - + Constructor C++ Connection(const std::string& url, const std::string& options); @@ -4052,9 +4313,9 @@ using (TransactionScope ts = new TransactionScope()) public Connection(string url, string options); + Copy Constructor - Copy constructor - + Copy constructor C++ Connection(const Connection&); @@ -4197,9 +4458,9 @@ using (TransactionScope ts = new TransactionScope())
- .NET Binding Class: Duration + .NET Binding for the C++ Messaging API Class: Duration - .NET Binding Class: Duration + .NET Binding for the C++ Messaging API Class: Duration @@ -4347,9 +4608,9 @@ using (TransactionScope ts = new TransactionScope())
- .NET Binding Class: FailoverUpdates + .NET Binding for the C++ Messaging API Class: FailoverUpdates - .NET Binding Class: FailoverUpdates + .NET Binding for the C++ Messaging API Class: FailoverUpdates @@ -4409,9 +4670,9 @@ using (TransactionScope ts = new TransactionScope())
- .NET Binding Class: Message + .NET Binding for the C++ Messaging API Class: Message - .NET Binding Class: Message + .NET Binding for the C++ Messaging API Class: Message @@ -4822,9 +5083,9 @@ using (TransactionScope ts = new TransactionScope())
- .NET Binding Class: Receiver + .NET Binding for the C++ Messaging API Class: Receiver - .NET Binding Class: Receiver + .NET Binding for the C++ Messaging API Class: Receiver @@ -5043,9 +5304,9 @@ using (TransactionScope ts = new TransactionScope())
- .NET Binding Class: Sender + .NET Binding for the C++ Messaging API Class: Sender - .NET Binding Class: Sender + .NET Binding for the C++ Messaging API Class: Sender @@ -5208,9 +5469,9 @@ using (TransactionScope ts = new TransactionScope())
- .NET Binding Class: Session + .NET Binding for the C++ Messaging API Class: Session - .NET Binding Class: Session + .NET Binding for the C++ Messaging API Class: Session @@ -5536,7 +5797,7 @@ using (TransactionScope ts = new TransactionScope())
- .NET Binding Class: SessionReceiver + .NET Binding for the C++ Messaging API Class: SessionReceiver The SessionReceiver class provides a convenient callback mechanism for Messages received by all Receivers on a given @@ -5578,6 +5839,7 @@ namespace Org.Apache.Qpid.Messaging.SessionReceiver is contained in cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver.
+
-- cgit v1.2.1