Return-Path: Delivered-To: apmail-qpid-commits-archive@www.apache.org Received: (qmail 29432 invoked from network); 5 Dec 2010 22:00:31 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 5 Dec 2010 22:00:31 -0000 Received: (qmail 26515 invoked by uid 500); 5 Dec 2010 22:00:30 -0000 Delivered-To: apmail-qpid-commits-archive@qpid.apache.org Received: (qmail 26503 invoked by uid 500); 5 Dec 2010 22:00:30 -0000 Mailing-List: contact commits-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@qpid.apache.org Delivered-To: mailing list commits@qpid.apache.org Received: (qmail 26457 invoked by uid 99); 5 Dec 2010 22:00:30 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Dec 2010 22:00:30 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Dec 2010 22:00:17 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 4968E2388C18; Sun, 5 Dec 2010 21:59:27 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r1042462 [12/12] - in /qpid/site/docs/books/0.8: ./ AMQP-Messaging-Broker-CPP-Book/ AMQP-Messaging-Broker-CPP-Book/html/ AMQP-Messaging-Broker-CPP-Book/html/images/ AMQP-Messaging-Broker-CPP-Book/html/images/jmx_console/ AMQP-Messaging-Brok... Date: Sun, 05 Dec 2010 21:59:26 -0000 To: commits@qpid.apache.org From: robbie@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101205215927.4968E2388C18@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch04s05.html URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch04s05.html?rev=1042462&view=auto ============================================================================== --- qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch04s05.html (added) +++ qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch04s05.html Sun Dec 5 21:59:22 2010 @@ -0,0 +1,43 @@ +4.5. Transactions

4.5. Transactions

The WCF channel provides a transaction resource manager + module and a recovery module that together provide distributed + transaction support with one-phase optimization. Some + configuration is required on Windows machines to enable + transaction support (see your installation notes or top level + ReadMe.txt file for instructions). Once properly configured, + the Qpid WCF channel acts as any other System.Transactions aware + resource, capable of participating in explicit or implicit + transactions.

Server code:

+[OperationBehavior(TransactionScopeRequired = true,
+                   TransactionAutoComplete = true)]
+
+public void SayHello(string greeting)
+{
+  // increment ExactlyOnceReceived counter on DB
+
+  // Success: transaction auto completes:
+}
+

Because this operation involves two transaction resources, the + database and the AMQP message broker, this operates as a full two + phase commit transaction managed by the Distributed Transaction + Coordinator service. If the transaction proceeds without error, + both ExactlyOnceReceived is incremented in the database and the AMQP + message is consumed from the broker. Otherwise, ExactlyOnceReceived is + unchanged and AMQP message is returned to its queue on the broker.

For the client code a few changes are made to the non-transacted + example. For "exactly once" semantics, we set the AMQP "Durable" + message property and enclose the transacted activities in a + TransactionScope:

+AmqpProperties myDefaults = new AmqpProperties();
+myDefaults.Durable = true;
+amqpBinding.DefaultMessageProperties = myDefaults;
+ChannelFactory<IHelloService> channelFactory =
+new ChannelFactory<IHelloService>(amqpBinding, clientEndpoint);
+IHelloService clientProxy = channelFactory.CreateChannel();
+
+using (TransactionScope ts = new TransactionScope())
+{
+   AmqpProperties amqpProperties = new AmqpProperties();
+   clientProxy.SayHello("Greetings from WCF client");
+   // increment ExactlyOnceSent counter on DB
+   ts.Complete();
+}
+
Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch05.html URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch05.html?rev=1042462&view=auto ============================================================================== --- qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch05.html (added) +++ qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch05.html Sun Dec 5 21:59:22 2010 @@ -0,0 +1,45 @@ +Chapter 5. The .NET Binding for the C++ Messaging Client

Chapter 5. The .NET Binding for the C++ Messaging Client

< p> + 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++. +

5.1. .NET Binding for the C++ Messaging Client Component Architecture

+                      +----------------------------+
+                      | Dotnet examples           |
+                      | Managed C#                 |
+                      +------+---------------+-----+
+                             |               |
+                             V               |
+        +---------------------------+        |
+        | Managed Callback          |        |
+        | org.apache.qpid.messaging.|        |
+        | sessionreceiver.dll       |        |
+        +----------------------+----+        |
+                               |             |
+managed                        V             V
+(.NET)                 +--------------------------------+
+:::::::::::::::::::::::| .NET Binding Library           |::::::::::::
+unmanaged              | org.apache.qpid.messaging.dll  |
+(Native Win32/64)      +---------------+----------------+
+                                       |
+                                       |
+      +----------------+               |
+      | Native examples|               |
+      | Unmanaged C++  |               |
+      +--------+-------+               |
+               |                       |
+               V                       V
+          +----------------------------------+
+          | QPID Messaging C++ Libraries     |
+          | qpid*.dll qmf*.dll               |
+          +--------+--------------+----------+
+
+This diagram illustrates the code and library components of the binding +and the hierarchical relationships between them. + +

Table 5.1. .NET Binding for the C++ Messaging Client Component Architecture

Component NameComponent Function
QPID Messaging C++ LibrariesThe QPID Messaging C++ core run time system
Unmanaged C++ Example Source ProgramsOrdinary C++ programs that illustrate using qpid/cpp Messaging directly + in a native Windows environment.
.NET Messaging Binding LibraryThe .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 LibraryAn 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 ProgramsVarious C# example programs that illustrate using .NET Messaging Binding in the .NET environment.

Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch05s02.html URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch05s02.html?rev=1042462&view=auto ============================================================================== --- qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch05s02.html (added) +++ qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch05s02.html Sun Dec 5 21:59:22 2010 @@ -0,0 +1,22 @@ +5.2. .NET Binding for the C++ Messaging Client Examples

5.2. .NET Binding for the C++ Messaging Client Examples

+ + This chapter describes the various sample programs that are available to + illustrate common Qpid Messaging usage. + +

Table 5.2. Example : Client - Server

ExampleClient - Server
csharp.example.serverCreates 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.clientSends a series of messages to the Server and prints the original message + content and the received message content.

Table 5.3. Example : Map Sender – Map Receiver

ExampleMap Sender - Map Receiver
csharp.map.receiverCreates a Receiver and listens for a map message. + Upon message reception the message is decoded and displayed on the console.
csharp.map.senderCreates a map message and sends it to map.receiver. + The map message contains values for every supported .NET Messaging + Binding data type.

Table 5.4. Example : Spout - Drain

ExampleSpout - Drain
csharp.example.spoutSpout 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.drainDrain is a more complex example of code that receives a series of messages + and displays their contents on the console.

Table 5.5. Example : Map Callback Sender – Map Callback Receiver

ExampleMap Callback Sender - Map Callback Receiver
csharp.map.callback.receiverCreates 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.senderCreates a map message and sends it to map_receiver. + The map message contains values for every supported .NET Messaging + Binding data type.

Table 5.6. Example - Declare Queues

ExampleDeclare Queues
csharp.example.declare_queuesA program to illustrate creating objects on a broker. + This program creates a queue used by spout and drain.

Table 5.7. Example: Direct Sender - Direct Receiver

ExampleDirect Sender - Direct Receiver
csharp.direct.receiverCreates 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.

Table 5.8. Example: Hello World

ExampleHello World
csharp.example.helloworldA program to send a message and to receive the same message.

Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch05s03.html URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch05s03.html?rev=1042462&view=auto ============================================================================== --- qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch05s03.html (added) +++ qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/ch05s03.html Sun Dec 5 21:59:22 2010 @@ -0,0 +1,40 @@ +5.3. .NET Binding Class Mapping to Underlying C++ Messaging API

5.3. .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. +

5.3.1. .NET Binding for the C++ Messaging API Class: Address

Table 5.9. .NET Binding for the C++ Messaging API Class: Address

< td>C++
.NET Binding Class: Address
LanguageSyntax
C++class Address
.NETpublic ref class Address
Constructor
C++Address();
.NETpublic Address();
Constructor
Address(const std::string& address);
.NETpublic Address(string address);
Constructor
C++Address(const std::string& name, const std::string& subject, const qpid::types::Variant::Map& options, const std::string& type = "");
.NETpublic Address(string name, string subject, Dictionary<string, object> options);
.NETpublic Address(string name, string subject, Dictionary<string, object> options, string type);
Copy constructor
C++Address(const Address& address);
.NETpublic Address(Address address);
Destructor
C++~Address();
.NET~Address();
Finalizer
C++n/a
.NET!Address();
Copy assignment operator
C++Address& operator=(const Address&);
.NETpublic Address op_Assign(Address rhs);
Property: Name
C++const std::string& getName() const;
C++void setName(const std::string&);
.NETpublic string Name { get; set; }
Property: Subject
C++const std::string& getSubject() const;
C++void setSubject(const std::string&);
.NETpublic string Subject { get; set; }
Property: Options
C++const qpid::types::Variant::Map& getOptions() const;
C++qpid: :types::Variant::Map& getOptions();
C++void setOptions(const qpid::types::Variant::Map&);
.NETpublic Dictionary<string, object> Options { get; set; }
Property: Type
C++std::string getType() const;
C++void setType(const std::string&);
.NETpublic string Type { get; set; }
Miscellaneous
C++std::string str() const;
.NETpublic string ToStr();
Miscellaneous
C++operator bool() const;
.NETn/a
Miscellaneous
C++bool operator !() const;
.NETn/a

5.3.2. .NET Binding for the C++ Messaging API Class: Connection

Table 5.10. .NET Binding for the C++ Messaging API Class: Connection

< tr>
.NET Binding Class: Connection
LanguageSyntax
C++class Connection : public qpid::messaging::Handle<ConnectionImpl>
.NETpublic ref class Connection
Constructor
C++Connection(ConnectionImpl* impl);
.NETn/a
Constructor
C++Connection();
.NETTODO:
Constructor
C++Connection(const std::string& url, const qpid::types::Variant::Map& options = qpid::types::Variant::Map());
.NETpublic Connection(string url);
.NETpublic Connection(string url, Dictionary<string, object> options);
Constructor
C++Connection(const std::string& url, const std::string& options);
.NETpublic Connection(string url, string options);
Copy Constructor
C++Connection(const Connection&);
.NETpublic Connection(Connection connection);
D estructor
C++~Connection();
.NET~Connection();
Finalizer
C++n/a
.NET!Connection();
Copy assignment operator
C++Connection& operator=(const Connection&);
.NETpublic Connection op_Assign(Connection rhs);
Method: SetOption
C++void setOption(const std::string& name, const qpid::types::Variant& value);
.NETpublic void SetOption(string name, object value);
Method: open
C++void open();
.NETpublic void Open();
Property: isOpen
C++bool isOpen();
.NET public bool IsOpen { get; }
Method: close
C++void close();
.NETpublic void Close();
Method: createTransactionalSession
C++Session createTransactionalSession(const std::string& name = std::string());
.NETpublic Session CreateTransactionalSession();
.NETpublic Session CreateTransactionalSession(string name);
Method: createSession
C++Session createSession(const std::string& name = std::string());
.NETpublic Session CreateSession();
.NETpublic Session CreateSession(string name);
Method: getSession
C++Session getSession(const std::string& name) const;
.NETpublic Session GetSession(string name);
Property: AuthenticatedUsername
C++std::string getAuthenticatedUsername();
.NETpublic string GetAuthenticatedUsername();

5.3.3. .NET Binding for the C++ Messaging API Class: Duration

Table 5.11. .NET Binding for the C++ Messaging API Class: Duration

.NET Binding Class: Duration
Lang uageSyntax
C++class Duration
.NETpublic ref class Duration
Constructor
C++explicit Duration(uint64_t milliseconds);
.NETpublic Duration(ulong mS);
Copy constructor
C++n/a
.NETpublic Duration(Duration rhs);
Destructor
C++default
.NETdefault
Finalizer
C++n/a
.NETdefault
Property: Milliseconds
C++uint64_t getMilliseconds() const;
.NETpublic ulong Milliseconds { get; }
Operator: *
C++Duration operator*(const Duration& duration, uint64_t multiplier);
.NETpublic static Duration operator *(Duration dur, ulong multiplier);
.NETpublic static Duration Multiply(Duration dur, ulong multiplier);
C++Duration operator*(uint64_t multiplier, const Duration& duration);
.NETpublic static Duration operator *(ulong multiplier, Duration dur);
.NETpublic static Duration Multiply(ulong multiplier, Duration dur);
Constants
C++static const Duration FOREVER;
C++static const Duration IMMEDIATE;
C++static const Duration SECOND;
C++static const Duration MINUTE;
.NETpublic sealed class DurationConstants
.NETpublic static Duration FORVER;
.NETpublic static Duration IMMEDIATE;
.NETpublic static Duration MINUTE;
.NETpublic static Duration SECOND;

5.3.4. .NET Binding for the C++ Messaging API Class: FailoverUpdates

Table 5.12. .NET Binding for the C++ Messaging API Class: FailoverUpdates

.NET Binding Class: FailoverUpdates
LanguageSyntax
C++class FailoverUpdates
.NETpublic ref class FailoverUpdates
Constructor
C++FailoverUpdates(Connection& connection);
.NETpublic FailoverUpdates(Connection connection);
Destructor
C++~FailoverUpdates();
.NET~FailoverUpdates();
Finalizer
C++n/a
.NET!FailoverUpdates();

5.3.5. .NET Binding for the C++ Messaging API Class: Message

Table 5.13. .NET Binding for the C++ Messaging API Class: Message

< /tr>
.NET Binding Class: Message
LanguageSyntax
C++class Message
.NETpublic ref class Message
Constructor
C++Message(const std::string& bytes = std::string());
.NETMessage();
.NETMessage(System::String ^ theStr);
.NETMessage(System::Object ^ theValue);
.NETMessage(array<System::Byte> ^ bytes);
Constructor
C++Message(const char*, size_t);
.NETpu blic Message(byte[] bytes, int offset, int size);
Copy constructor
C++Message(const Message&);
.NETpublic Message(Message message);
Copy assignment operator
C++Message& operator=(const Message&);
.NETpublic Message op_Assign(Message rhs);
Destructor
C++~Message();
.NET~Message();
Finalizer
C++n/a
.NET!Message()
Property: ReplyTo
C++void setReplyTo(const Address&);
C++const Address& getReplyTo() const;
.NETpublic Address ReplyTo { get; set; }
Propert y: Subject
C++void setSubject(const std::string&);
C++const std::string& getSubject() const;
.NETpublic string Subject { get; set; }
Property: ContentType
C++void setContentType(const std::string&);
C++const std::string& getContentType() const;
.NETpublic string ContentType { get; set; }
Property: MessageId
C++void setMessageId(const std::string&);
C++const std::string& getMessageId() const;
.NETpublic string MessageId { get; set; }
Property: UserId
C++void setUserId(const std::string&);
C++const std::string& getUserId() const;
.NETpublic string UserId { get; set; }
Property: CorrelationId
C++void setCorrelationId(const std::string&);
C++const std::string& getCorrelationId() const;
.NETpublic string CorrelationId { get; set; }
Property: Priority
C++void setPriority(uint8_t);
C++uint8_t getPriority() const;
.NETpublic byte Priority { get; set; }
Property: Ttl
C++void setTtl(Duration ttl);
C++Duration getTtl() const;
.NETpublic Duration Ttl { get; set; }
Property: Durable
C++void setDurable(bool durable);
C++bool getDu rable() const;
.NETpublic bool Durable { get; set; }
Property: Redelivered
C++bool getRedelivered() const;
C++void setRedelivered(bool);
.NETpublic bool Redelivered { get; set; }
Method: SetProperty
C++void setProperty(const std::string&, const qpid::types::Variant&);
.NETpublic void SetProperty(string name, object value);
Property: Properties
C++const qpid::types::Variant::Map& getProperties() const;
C++qpid::types::Variant::Map& getProperties();
.NETpublic Dictionary<string, object> Properties { get; set; }
Method: SetContent
C++void setContent(const std::string&);
C++void setContent(const char* chars, size_t count);
.NETpublic void SetContent(byte[] bytes);
.NETpublic void SetContent(string content);
.NETpublic void SetContent(byte[] bytes, int offset, int size);
Method: GetContent
C++std::string getContent() const;
.NETpublic string GetContent();
.NETpublic void GetContent(byte[] arr);
.NETpublic void GetContent(Collection<object> __p1);
.NETpublic void GetContent(Dictionary<string, object> dict);
Method: GetContentPtr
C++const char* getContentPtr() const;
.NETn/a
P roperty: ContentSize
C++size_t getContentSize() const;
.NETpublic ulong ContentSize { get; }
Struct: EncodingException
C++struct EncodingException : qpid::types::Exception
.NETn/a
Method: decode
C++void decode(const Message& message, qpid::types::Variant::Map& map, const std::string& encoding = std::string());
C++void decode(const Message& message, qpid::types::Variant::List& list, const std::string& encoding = std::string());
.NETTODO:
Method: encode
C++void encode(const qpid::types::Variant::Map& map, Message& message, const std::string& encoding = std::string());
C++void encode (const qpid::types::Variant::List& list, Message& message, const std::string& encoding = std::string());
.NETTODO:
Method: AsString
C++n/a
.NETpublic string AsString(object obj);
.NETpublic string ListAsString(Collection<object> list);
.NETpublic string MapAsString(Dictionary<string, object> dict);

5.3.6. .NET Binding for the C++ Messaging API Class: Receiver

Table 5.14. .NET Binding for the C++ Messaging API Class: Receiver

.NET Binding Class: Receiver
LanguageSyntax
C++class Receiver
.NETpublic ref class Receiver
Constructor
.NETConstructed object is returned by Session.CreateReceiver
Copy constructor
C++Receiver(const Receiver&);
.NETpublic Receiver(Receiver receiver);
Destructor
C++~Receiver();
.NET~Receiver();
Finalizer
C++n/a
.NET!Receiver()
Copy assignment operator
C++Receiver& operator=(const Receiver&);
.NETpublic Receiver op_Assign(Receiver rhs);
Method: Get
C++bool get(Message& message, Duration timeout=Duration::FOREVER);
.NETpublic bool Get(Message mmsgp);
.NETpublic bool Get(Message mmsgp, Duration durationp);
Method: Get
C++Message get(Duration timeout=Duration::FOREVER);
.NETpublic Message Get();
.NETpublic Message Get(Duration durationp);
Method: Fetch
C++bool fetch(Message& message, Duration timeout=Duration::FOREVER);
.NETpublic bool Fetch(Message mmsgp);
.NETpubl ic bool Fetch(Message mmsgp, Duration duration);
Method: Fetch
C++Message fetch(Duration timeout=Duration::FOREVER);
.NETpublic Message Fetch();
.NETpublic Message Fetch(Duration durationp);
Property: Capacity
C++void setCapacity(uint32_t);
C++uint32_t getCapacity();
.NETpublic uint Capacity { get; set; }
Property: Available
C++uint32_t getAvailable();
.NETpublic uint Available { get; }
Property: Unsettled
C++uint32_t getUnsettled();
.NETpublic uint Unsettled { get; }
Method: Close
C++void close();
.NETpublic void Close();
Property: IsClosed
C++bool isClosed() const;
.NETpublic bool IsClosed { get; }
Property: Name
C++const std::string& getName() const;
.NETpublic string Name { get; }
Property: Session
C++Session getSession() const;
.NETpublic Session Session { get; }

5.3.7. .NET Binding for the C++ Messaging API Class: Sender

Table 5.15. .NET Binding for the C++ Messaging API Class: Sender

.NET Binding Class: Sender
LanguageSyntax
C++class Sender
.NETpublic ref class Sender
Constructor
.NETConstructed object is returned by Session.CreateSender
Copy constructor
C++Sender(const Sender&);
.NETpublic Sender(Sender sender);
Destructor
C++~Sender();
.NET~Sender();
Finalizer
C++ n/a
.NET!Sender()
Copy assignment operator
C++Sender& operator=(const Sender&);
.NETpublic Sender op_Assign(Sender rhs);
Method: Send
C++void send(const Message& message, bool sync=false);
.NETpublic void Send(Message mmsgp);
.NETpublic void Send(Message mmsgp, bool sync);
Method: Close
C++void close();
.NETpublic void Close();
Property: Capacity
C++void setCapacity(uint32_t);
C++uint32_t getCapacity();
.NETpublic uint Capacity { get; set; }
Property: Available
C++uint32_t getAvailable();
.NETpublic uint Available { get; }
Property: Unsettled
C++uint32_t getUnsettled();
.NETpublic uint Unsettled { get; }
Property: Name
C++const std::string& getName() const;
.NETpublic string Name { get; }
Property: Session
C++Session getSession() const;
.NETpublic Session Session { get; }

5.3.8. .NET Binding for the C++ Messaging API Class: Session

Table 5.16. .NET Binding for the C++ Messaging API Class: Session

< td colspan="2" align="center">Finalizer
.NET Binding Class: Session
LanguageSyntax
C++class Session
.NETpublic ref class Session
Constructor
.NETConstructed object is returned by Connection.CreateSession
Copy constructor
C++Session(const Session&);
.NETpublic Session(Session session);
Destructor
C++~Session();
.NET~Session();
C++n/a
.NET!Session()
Copy assignment operator
C++Session& operator=(const Session&);
.NETpublic Session op_Assign(Session rhs);
Method: Close
C++void close();
.NETpublic void Close();
Method: Commit
C++void commit();
.NETpublic void Commit();
Method: Rollback
C++void rollback();
.NETpublic void Rollback();
Method: Acknowledge
C++void acknowledge(bool sync=false);
C++void acknowledge(Message&, bool syn c=false);
.NETpublic void Acknowledge();
.NETpublic void Acknowledge(bool sync);
.NETpublic void Acknowledge(Message __p1);
.NETpublic void Acknowledge(Message __p1, bool __p2);
Method: Reject
C++void reject(Message&);
.NETpublic void Reject(Message __p1);
Method: Release
C++void release(Message&);
.NETpublic void Release(Message __p1);
Method: Sync
C++void sync(bool block=true);
.NETpublic void Sync();
.NETpublic void Sync(bool block);
Property: Receivable
C++uint32_t getReceivable();
.NETpublic uint Receivable { get; }
Property: UnsettledAcks
C++uint32_t getUnsettledAcks();
.NETpublic uint UnsetledAcks { get; }
Method: NextReceiver
C++bool nextReceiver(Receiver&, Duration timeout=Duration::FOREVER);
.NETpublic bool NextReceiver(Receiver rcvr);
.NETpublic bool NextReceiver(Receiver rcvr, Duration timeout);
Method: NextReceiver
C++Receiver nextReceiver(Duration timeout=Duration::FOREVER);
.NETpublic Receiver NextReceiver();
.NETpublic Receiver NextReceiver(Duration timeout);
Method: CreateSender
C++Sender createSender(const Ad dress& address);
.NETpublic Sender CreateSender(Address address);
Method: CreateSender
C++Sender createSender(const std::string& address);
.NETpublic Sender CreateSender(string address);
Method: CreateReceiver
C++Receiver createReceiver(const Address& address);
.NETpublic Receiver CreateReceiver(Address address);
Method: CreateReceiver
C++Receiver createReceiver(const std::string& address);
.NETpublic Receiver CreateReceiver(string address);
Method: GetSender
C++Sender getSender(const std::string& name) const;
.NETpublic Sender GetSender(string name);
Method: GetReceiver
C++Receiver getReceiver(const std::string& name) const;
.NETpublic Receiver GetReceiver(string name);
Property: Connection
C++Connection getConnection() const;
.NETpublic Connection Connection { get; }
Property: HasError
C++bool hasError();
.NETpublic bool HasError { get; }
Method: CheckError
C++void checkError();
.NETpublic void CheckError();

5.3.9. .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 + Session. +

+

+using Org.Apache.Qpid.Messaging;
+using System;
+
+namespace Org.Apache.Qpid.Messaging.SessionReceiver
+{
+    public interface ISessionReceiver
+    {
+        void SessionReceiver(Receiver receiver, Message message);
+    }
+
+    public class CallbackServer
+    {
+        public CallbackServer(Session session, ISessionReceiver callback);
+
+        public void Close();
+    }
+}
+
+	

+

+ To use this class a client program includes references to both + Org.Apache.Qpid.Messaging and Org.Apache.Qpid.Messaging.SessionReceiver. + The calling program creates a function that implements the + ISessionReceiver interface. This function will be called whenever + message is received by the session. The callback process is started + by creating a CallbackServer and will continue to run until the + client program calls the CallbackServer.Close function. +

+ A complete operating example of using the SessionReceiver callback + is contained in cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver. +

Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113098.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113098.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113098.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113099.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113099.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113099.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113100.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113100.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113100.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113101.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113101.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113101.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113102.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113102.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113102.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113103.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113103.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113103.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113104.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113104.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113104.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113105.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113105.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113105.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113106.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113106.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113106.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113107.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113107.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113107.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113108.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113108.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113108.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113109.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113109.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113109.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113110.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113110.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113110.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113111.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113111.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113111.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113112.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113112.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113112.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113113.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113113.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113113.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113114.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113114.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113114.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113115.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113115.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113115.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113116.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113116.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113116.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113117.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113117.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113117.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113118.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113118.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113118.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113119.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113119.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/jmx_console/3113119.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/qpid-logo.png URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/qpid-logo.png?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/images/qpid-logo.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/index.html URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/index.html?rev=1042462&view=auto ============================================================================== --- qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/index.html (added) +++ qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/html/index.html Sun Dec 5 21:59:22 2010 @@ -0,0 +1 @@ +Programming in Apache Qpid

Programming in Apache Qpid

Cross-Platform AMQP Messaging in Java JMS, .NET, C++, and Python


Table of Contents

1. Introduction
2. Using the Qpid Messaging API
2.1. A Simple Messaging Program in C++
2.2. A Simple Messaging Program in Python
2.3. A Simple Messaging Program in .NET C#
2.4. Addresses
2.4.1. Address Strings
2.4.2. Subjects
2.4.3. Address String Options
2.4.4. Address String Grammar
2.5. Sender Capacity and Replay
2.6. Receiver Capacity (Prefetch)
2.7. Acknowledging Received Messages
2.8. Receiving Messages from Multiple Sources
2.9. Transactions
2.10. Connection Options
2.11. Maps in Message Content
2.11.1. Qpid Maps in Python
2.11.2. Qpid Maps in C++
2.11.3. Qpid Maps in .NET
2.12. The Request / Response Pattern
2.13. Performance Tips
2.14. Cluster Failover
2.15. Logging
2.15.1. Logging in C++
2.15.2. Logging in Python
2.16. The AMQP 0-10 mapping
3. Using the Qpid JMS client
3.1. A Simple Messaging Program in Java JMS
3.2. Apache Qpid JNDI Properties for AMQP Messaging
3.2.1. JNDI Properties for Apache Qpid
3.2.2. Connection URLs
3.3. Java JMS Message Properties
3.4. JMS MapMessage Types
3.5. JMS Client Logging
4. Using the Qpid WCF client
4.1. XML and Binary Bindings
4.2. Endpoints
4.3. Message Headers
4.4. Security
4.5. Transactions
5. The .NET Binding for the C++ Messaging Client
5.1. .NET Binding for the C++ Messaging Client Component Architecture
5.2. .NET Binding for the C++ Messaging Client Examples
5.3. .NET Binding Class Mapping to Underlying C++ Messaging API
5.3.1. .NET Binding for the C++ Messaging API Class: Address
5.3.2. .NET Binding for the C++ Messaging API Class: Connection
5.3.3. .NET Binding for the C++ Messaging API Class: Duration
5.3.4. .NET Binding for the C++ Messaging API Class: FailoverUpdates
5.3.5. .NET Binding for the C++ Messaging API Class: Message
5.3.6. .NET Binding for the C++ Messaging API Class: Receiver
5.3.7. .NET Binding for the C++ Messaging API Class: Sender
5.3.8. .NET Binding for the C++ Messaging API Class: Session
5.3.9. .NET Binding for the C++ Messaging API Class: SessionReceiver
Added: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/pdf/Programming-In-Apache-Qpid.pdf URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/pdf/Programming-In-Apache-Qpid.pdf?rev=1042462&view=auto ============================================================================== Binary file - no diff available. Propchange: qpid/site/docs/books/0.8/Programming-In-Apache-Qpid/pdf/Programming-In-Apache-Qpid.pdf ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:commits-subscribe@qpid.apache.org