You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by sh...@apache.org on 2011/10/21 03:20:13 UTC

svn commit: r1187150 [5/43] - in /qpid/branches/QPID-2519: ./ bin/ cpp/ cpp/bindings/ cpp/bindings/qmf/python/ cpp/bindings/qmf/ruby/ cpp/bindings/qmf/tests/ cpp/bindings/qmf2/ cpp/bindings/qmf2/examples/cpp/ cpp/bindings/qmf2/python/ cpp/bindings/qmf2...

Modified: qpid/branches/QPID-2519/cpp/include/qpid/messaging/Connection.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/messaging/Connection.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/messaging/Connection.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/messaging/Connection.h Fri Oct 21 01:19:00 2011
@@ -42,7 +42,7 @@ class Session;
  * A connection represents a network connection to a remote endpoint.
  */
 
-class QPID_MESSAGING_CLASS_EXTERN Connection : public qpid::messaging::Handle<ConnectionImpl>
+class Connection : public qpid::messaging::Handle<ConnectionImpl>
 {
   public:
     QPID_MESSAGING_EXTERN Connection(ConnectionImpl* impl);
@@ -54,27 +54,27 @@ class QPID_MESSAGING_CLASS_EXTERN Connec
      *     username
      *     password
      *     heartbeat
-     *     tcp_nodelay
-     *     sasl_mechanisms
-     *     sasl_service
-     *     sasl_min_ssf
-     *     sasl_max_ssf
+     *     tcp-nodelay
+     *     sasl-mechanism
+     *     sasl-service
+     *     sasl-min-ssf
+     *     sasl-max-ssf
      *     transport
      * 
      * Reconnect behaviour can be controlled through the following options:
      * 
      *     reconnect: true/false (enables/disables reconnect entirely)
-     *     reconnect_timeout: number of seconds (give up and report failure after specified time)
-     *     reconnect_limit: n (give up and report failure after specified number of attempts)
-     *     reconnect_interval_min: number of seconds (initial delay between failed reconnection attempts)
-     *     reconnect_interval_max: number of seconds (maximum delay between failed reconnection attempts)
-     *     reconnect_interval: shorthand for setting the same reconnect_interval_min/max
-     *     reconnect_urls: list of alternate urls to try when connecting
+     *     reconnect-timeout: number of seconds (give up and report failure after specified time)
+     *     reconnect-limit: n (give up and report failure after specified number of attempts)
+     *     reconnect-interval-min: number of seconds (initial delay between failed reconnection attempts)
+     *     reconnect-interval-max: number of seconds (maximum delay between failed reconnection attempts)
+     *     reconnect-interval: shorthand for setting the same reconnect_interval_min/max
+     *     reconnect-urls: list of alternate urls to try when connecting
      *
-     *     The reconnect_interval is the time that the client waits
+     *     The reconnect-interval is the time that the client waits
      *     for after a failed attempt to reconnect before retrying. It
-     *     starts at the value of the min_retry_interval and is
-     *     doubled every failure until the value of max_retry_interval
+     *     starts at the value of the min-retry-interval and is
+     *     doubled every failure until the value of max-retry-interval
      *     is reached.
      */
     QPID_MESSAGING_EXTERN Connection(const std::string& url, const qpid::types::Variant::Map& options = qpid::types::Variant::Map());

Modified: qpid/branches/QPID-2519/cpp/include/qpid/messaging/Duration.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/messaging/Duration.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/messaging/Duration.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/messaging/Duration.h Fri Oct 21 01:19:00 2011
@@ -32,7 +32,7 @@ namespace messaging {
 /**   \ingroup messaging 
  * A duration is a time in milliseconds.
  */
-class QPID_MESSAGING_CLASS_EXTERN Duration
+class Duration
 {
   public:
     QPID_MESSAGING_EXTERN explicit Duration(uint64_t milliseconds);
@@ -46,11 +46,9 @@ class QPID_MESSAGING_CLASS_EXTERN Durati
 };
 
 QPID_MESSAGING_EXTERN Duration operator*(const Duration& duration,
-                                         uint64_t multiplier);
+                                      uint64_t multiplier);
 QPID_MESSAGING_EXTERN Duration operator*(uint64_t multiplier,
-                                         const Duration& duration);
-QPID_MESSAGING_EXTERN bool operator==(const Duration& a, const Duration& b);
-QPID_MESSAGING_EXTERN bool operator!=(const Duration& a, const Duration& b);
+                                      const Duration& duration);
 
 }} // namespace qpid::messaging
 

Modified: qpid/branches/QPID-2519/cpp/include/qpid/messaging/FailoverUpdates.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/messaging/FailoverUpdates.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/messaging/FailoverUpdates.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/messaging/FailoverUpdates.h Fri Oct 21 01:19:00 2011
@@ -32,7 +32,7 @@ struct FailoverUpdatesImpl;
  * A utility to listen for updates on cluster membership and update
  * the list of known urls for a connection accordingly.
  */
-class QPID_MESSAGING_CLASS_EXTERN FailoverUpdates
+class FailoverUpdates
 {
   public:
     QPID_MESSAGING_EXTERN FailoverUpdates(Connection& connection);

Modified: qpid/branches/QPID-2519/cpp/include/qpid/messaging/Handle.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/messaging/Handle.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/messaging/Handle.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/messaging/Handle.h Fri Oct 21 01:19:00 2011
@@ -40,22 +40,22 @@ template <class T> class Handle {
   public:
 
     /**@return true if handle is valid,  i.e. not null. */
-    QPID_MESSAGING_INLINE_EXTERN bool isValid() const { return impl; }
+    QPID_MESSAGING_EXTERN bool isValid() const { return impl; }
 
     /**@return true if handle is null. It is an error to call any function on a null handle. */
-    QPID_MESSAGING_INLINE_EXTERN bool isNull() const { return !impl; }
+    QPID_MESSAGING_EXTERN bool isNull() const { return !impl; }
 
     /** Conversion to bool supports idiom if (handle) { handle->... } */
-    QPID_MESSAGING_INLINE_EXTERN operator bool() const { return impl; }
+    QPID_MESSAGING_EXTERN operator bool() const { return impl; }
 
     /** Operator ! supports idiom if (!handle) { do_if_handle_is_null(); } */
-    QPID_MESSAGING_INLINE_EXTERN bool operator !() const { return !impl; }
+    QPID_MESSAGING_EXTERN bool operator !() const { return !impl; }
 
     void swap(Handle<T>& h) { T* t = h.impl; h.impl = impl; impl = t; }
 
   protected:
     typedef T Impl;
-    QPID_MESSAGING_INLINE_EXTERN Handle() :impl() {}
+    QPID_MESSAGING_EXTERN Handle() :impl() {}
 
     // Not implemented,subclasses must implement.
     QPID_MESSAGING_EXTERN Handle(const Handle&);

Modified: qpid/branches/QPID-2519/cpp/include/qpid/messaging/ImportExport.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/messaging/ImportExport.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/messaging/ImportExport.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/messaging/ImportExport.h Fri Oct 21 01:19:00 2011
@@ -20,16 +20,14 @@
  * under the License.
  */
 
-#include "qpid/ImportExport.h"
-
+#if defined(WIN32) && !defined(QPID_DECLARE_STATIC)
 #if defined(CLIENT_EXPORT) || defined (qpidmessaging_EXPORTS)
-#  define QPID_MESSAGING_EXTERN QPID_EXPORT
-#  define QPID_MESSAGING_CLASS_EXTERN QPID_CLASS_EXPORT
-#  define QPID_MESSAGING_INLINE_EXTERN QPID_INLINE_EXPORT
+#define QPID_MESSAGING_EXTERN __declspec(dllexport)
+#else
+#define QPID_MESSAGING_EXTERN __declspec(dllimport)
+#endif
 #else
-#  define QPID_MESSAGING_EXTERN QPID_IMPORT
-#  define QPID_MESSAGING_CLASS_EXTERN QPID_CLASS_IMPORT
-#  define QPID_MESSAGING_INLINE_EXTERN QPID_INLINE_IMPORT
+#define QPID_MESSAGING_EXTERN
 #endif
 
 #endif  /*!QPID_MESSAGING_IMPORTEXPORT_H*/

Modified: qpid/branches/QPID-2519/cpp/include/qpid/messaging/Message.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/messaging/Message.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/messaging/Message.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/messaging/Message.h Fri Oct 21 01:19:00 2011
@@ -39,7 +39,7 @@ struct MessageImpl;
 /**   \ingroup messaging 
  * Representation of a message.
  */
-class QPID_MESSAGING_CLASS_EXTERN Message
+class Message
 {
   public:
     QPID_MESSAGING_EXTERN Message(const std::string& bytes = std::string());
@@ -55,58 +55,23 @@ class QPID_MESSAGING_CLASS_EXTERN Messag
     QPID_MESSAGING_EXTERN void setSubject(const std::string&);
     QPID_MESSAGING_EXTERN const std::string& getSubject() const;
 
-    /**
-     * Set the content type (i.e. the MIME type) for the message. This
-     * should be set by the sending application and indicates to
-     * recipients of message how to interpret or decode the content.
-     */
     QPID_MESSAGING_EXTERN void setContentType(const std::string&);
-    /**
-     * Returns the content type (i.e. the MIME type) for the
-     * message. This can be used to determine how to decode the
-     * message content.
-     */
     QPID_MESSAGING_EXTERN const std::string& getContentType() const;
 
-    /**
-     * Set an application defined identifier for the message. At
-     * present this must be a stringfied UUID (support for less
-     * restrictive IDs is anticipated however).
-     */
     QPID_MESSAGING_EXTERN void setMessageId(const std::string&);
     QPID_MESSAGING_EXTERN const std::string& getMessageId() const;
 
-    /**
-     * Sets the user id of the message. This should in general be the
-     * user-id as which the sending connection authenticated itself as
-     * the messaging infrastructure will verify this. See
-     * Connection::getAuthenticatedUsername()
-     */
     QPID_MESSAGING_EXTERN void setUserId(const std::string&);
     QPID_MESSAGING_EXTERN const std::string& getUserId() const;
 
-    /**
-     * Can be used to set application specific correlation identifiers
-     * as part of a protocol for message exchange patterns. E.g. a
-     * request-reponse pattern might require the correlation-id of the
-     * request and response to match, or might use the message-id of
-     * the request as the correlation-id on the response etc.
-     */
     QPID_MESSAGING_EXTERN void setCorrelationId(const std::string&);
     QPID_MESSAGING_EXTERN const std::string& getCorrelationId() const;
 
-    /**
-     * Sets a priority level on the message. This may be used by the
-     * messaging infrastructure to prioritise delivery of higher
-     * priority messages.
-     */
     QPID_MESSAGING_EXTERN void setPriority(uint8_t);
     QPID_MESSAGING_EXTERN uint8_t getPriority() const;
 
     /**
-     * Set the time to live for this message in milliseconds. This can
-     * be used by the messaging infrastructure to discard messages
-     * that are no longer of relevance.
+     * Set the time to live for this message in milliseconds.
      */
     QPID_MESSAGING_EXTERN void setTtl(Duration ttl);
     /**
@@ -114,62 +79,24 @@ class QPID_MESSAGING_CLASS_EXTERN Messag
      */
     QPID_MESSAGING_EXTERN Duration getTtl() const;
 
-    /**
-     * Mark the message as durable. This is a hint to the messaging
-     * infrastructure that the message should be persisted or
-     * otherwise stored such that failoures or shutdown do not cause
-     * it to be lost.
-     */
     QPID_MESSAGING_EXTERN void setDurable(bool durable);
     QPID_MESSAGING_EXTERN bool getDurable() const;
 
-    /**
-     * The redelivered flag if set implies that the message *may* have
-     * been previously delivered and thus is a hint to the application
-     * or messaging infrastructure that if de-duplication is required
-     * this message should be examined to determine if it is a
-     * duplicate.
-     */
     QPID_MESSAGING_EXTERN bool getRedelivered() const;
-    /**
-     * Can be used to provide a hint to the application or messaging
-     * infrastructure that if de-duplication is required this message
-     * should be examined to determine if it is a duplicate.
-     */
     QPID_MESSAGING_EXTERN void setRedelivered(bool);
 
-    /**
-     * In addition to a payload (i.e. the content), messages can
-     * include annotations describing aspectf of the message. In
-     * addition to the standard annotations such as TTL and content
-     * type, application- or context- specific properties can also be
-     * defined. Each message has a map of name values for such custom
-     * properties. The value is specified as a Variant.
-     */
     QPID_MESSAGING_EXTERN const qpid::types::Variant::Map& getProperties() const;
     QPID_MESSAGING_EXTERN qpid::types::Variant::Map& getProperties();
 
-    /**
-     * Set the content to the data held in the string parameter. Note:
-     * this is treated as raw bytes and need not be text. Consider
-     * setting the content-type to indicate how the data should be
-     * interpreted by recipients.
-     */
     QPID_MESSAGING_EXTERN void setContent(const std::string&);
     /**
-     * Copy count bytes from the region pointed to by chars as the
-     * message content.
+     * Note that chars are copied.
      */
     QPID_MESSAGING_EXTERN void setContent(const char* chars, size_t count);
 
     /** Get the content as a std::string */
     QPID_MESSAGING_EXTERN std::string getContent() const;
-    /**
-     * Get a const pointer to the start of the content data. The
-     * memory pointed to is owned by the message. The getContentSize()
-     * method indicates how much data there is (i.e. the extent of the
-     * memory region pointed to by the return value of this method).
-     */
+    /** Get a const pointer to the start of the content data. */
     QPID_MESSAGING_EXTERN const char* getContentPtr() const;
     /** Get the size of content in bytes. */
     QPID_MESSAGING_EXTERN size_t getContentSize() const;
@@ -180,9 +107,9 @@ class QPID_MESSAGING_CLASS_EXTERN Messag
     friend struct MessageImplAccess;
 };
 
-struct QPID_MESSAGING_CLASS_EXTERN EncodingException : qpid::types::Exception
+struct EncodingException : qpid::types::Exception
 {
-    QPID_MESSAGING_EXTERN EncodingException(const std::string& msg);
+    EncodingException(const std::string& msg);
 };
 
 /**
@@ -195,8 +122,8 @@ struct QPID_MESSAGING_CLASS_EXTERN Encod
  * @exception EncodingException
  */
 QPID_MESSAGING_EXTERN void decode(const Message& message,
-                                  qpid::types::Variant::Map& map,
-                                  const std::string& encoding = std::string());
+                               qpid::types::Variant::Map& map,
+                               const std::string& encoding = std::string());
 /**
  * Decodes message content into a Variant::List.
  * 
@@ -207,8 +134,8 @@ QPID_MESSAGING_EXTERN void decode(const 
  * @exception EncodingException
  */
 QPID_MESSAGING_EXTERN void decode(const Message& message,
-                                  qpid::types::Variant::List& list,
-                                  const std::string& encoding = std::string());
+                               qpid::types::Variant::List& list,
+                               const std::string& encoding = std::string());
 /**
  * Encodes a Variant::Map into a message.
  * 
@@ -219,8 +146,8 @@ QPID_MESSAGING_EXTERN void decode(const 
  * @exception EncodingException
  */
 QPID_MESSAGING_EXTERN void encode(const qpid::types::Variant::Map& map,
-                                  Message& message,
-                                  const std::string& encoding = std::string());
+                               Message& message,
+                               const std::string& encoding = std::string());
 /**
  * Encodes a Variant::List into a message.
  * 
@@ -231,8 +158,8 @@ QPID_MESSAGING_EXTERN void encode(const 
  * @exception EncodingException
  */
 QPID_MESSAGING_EXTERN void encode(const qpid::types::Variant::List& list,
-                                  Message& message,
-                                  const std::string& encoding = std::string());
+                               Message& message,
+                               const std::string& encoding = std::string());
 
 }} // namespace qpid::messaging
 

Modified: qpid/branches/QPID-2519/cpp/include/qpid/messaging/Receiver.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/messaging/Receiver.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/messaging/Receiver.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/messaging/Receiver.h Fri Oct 21 01:19:00 2011
@@ -41,7 +41,7 @@ class Session;
 /**   \ingroup messaging 
  * Interface through which messages are received.
  */
-class QPID_MESSAGING_CLASS_EXTERN Receiver : public qpid::messaging::Handle<ReceiverImpl>
+class Receiver : public qpid::messaging::Handle<ReceiverImpl>
 {
   public:
     QPID_MESSAGING_EXTERN Receiver(ReceiverImpl* impl = 0);

Modified: qpid/branches/QPID-2519/cpp/include/qpid/messaging/Sender.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/messaging/Sender.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/messaging/Sender.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/messaging/Sender.h Fri Oct 21 01:19:00 2011
@@ -40,7 +40,7 @@ class Session;
 /**   \ingroup messaging 
  * Interface through which messages are sent.
  */
-class QPID_MESSAGING_CLASS_EXTERN Sender : public qpid::messaging::Handle<SenderImpl>
+class Sender : public qpid::messaging::Handle<SenderImpl>
 {
   public:
     QPID_MESSAGING_EXTERN Sender(SenderImpl* impl = 0);

Modified: qpid/branches/QPID-2519/cpp/include/qpid/messaging/Session.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/messaging/Session.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/messaging/Session.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/messaging/Session.h Fri Oct 21 01:19:00 2011
@@ -46,7 +46,7 @@ class SessionImpl;
  * A session represents a distinct 'conversation' which can involve
  * sending and receiving messages to and from different addresses.
  */
-class QPID_MESSAGING_CLASS_EXTERN Session : public qpid::messaging::Handle<SessionImpl>
+class Session : public qpid::messaging::Handle<SessionImpl>
 {
   public:
     QPID_MESSAGING_EXTERN Session(SessionImpl* impl = 0);
@@ -62,12 +62,6 @@ class QPID_MESSAGING_CLASS_EXTERN Sessio
      */
     QPID_MESSAGING_EXTERN void close();
 
-    /**
-     * Commits the sessions transaction.
-     *
-     * @exception TransactionAborted if the original session is lost
-     * forcing an automatic rollback.
-     */
     QPID_MESSAGING_EXTERN void commit();
     QPID_MESSAGING_EXTERN void rollback();
 
@@ -84,10 +78,6 @@ class QPID_MESSAGING_CLASS_EXTERN Sessio
      */
     QPID_MESSAGING_EXTERN void acknowledge(Message&, bool sync=false);
     /**
-     * Acknowledges all message up to the specified message.
-     */
-    QPID_MESSAGING_EXTERN void acknowledgeUpTo(Message&, bool sync=false);
-    /**
      * Rejects the specified message. The broker does not redeliver a
      * message that has been rejected. Once a message has been
      * acknowledged, it can no longer be rejected.
@@ -145,51 +135,25 @@ class QPID_MESSAGING_CLASS_EXTERN Sessio
     /**
      * Create a new sender through which messages can be sent to the
      * specified address.
-     *
-     * @exception ResolutionError if there is an error in resolving
-     * the address
      */
     QPID_MESSAGING_EXTERN Sender createSender(const Address& address);
-    /**
-     * Create a new sender through which messages can be sent to the
-     * specified address.
-     *
-     * @exception ResolutionError if there is an error in resolving
-     * the address
-     *
-     * @exception MalformedAddress if the syntax of address is not
-     * valid
-     */
     QPID_MESSAGING_EXTERN Sender createSender(const std::string& address);
 
     /**
      * Create a new receiver through which messages can be received
      * from the specified address.
-     *
-     * @exception ResolutionError if there is an error in resolving
-     * the address
      */
     QPID_MESSAGING_EXTERN Receiver createReceiver(const Address& address);
-    /**
-     * Create a new receiver through which messages can be received
-     * from the specified address.
-     *
-     * @exception ResolutionError if there is an error in resolving
-     * the address
-     *
-     * @exception MalformedAddress if the syntax of address is not
-     * valid
-     */
     QPID_MESSAGING_EXTERN Receiver createReceiver(const std::string& address);
 
     /**
      * Returns the sender with the specified name.
-     * @exception KeyError if there is none for that name.
+     *@exception KeyError if there is none for that name.
      */
     QPID_MESSAGING_EXTERN Sender getSender(const std::string& name) const;
     /**
      * Returns the receiver with the specified name.
-     * @exception KeyError if there is none for that name.
+     *@exception KeyError if there is none for that name.
      */
     QPID_MESSAGING_EXTERN Receiver getReceiver(const std::string& name) const;
     /**
@@ -198,16 +162,7 @@ class QPID_MESSAGING_CLASS_EXTERN Sessio
      */
     QPID_MESSAGING_EXTERN Connection getConnection() const;
 
-    /**
-     * @returns true if the session has been rendered invalid by some
-     * exception, false if it is valid for use.
-     */
     QPID_MESSAGING_EXTERN bool hasError();
-    /**
-     * If the session has been rendered invalid by some exception,
-     * this method will result in that exception being thrown on
-     * calling this method.
-     */
     QPID_MESSAGING_EXTERN void checkError();
 
 #ifndef SWIG

Modified: qpid/branches/QPID-2519/cpp/include/qpid/messaging/exceptions.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/messaging/exceptions.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/messaging/exceptions.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/messaging/exceptions.h Fri Oct 21 01:19:00 2011
@@ -10,9 +10,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- *
+ * 
  *   http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -29,47 +29,34 @@
 namespace qpid {
 namespace messaging {
 
-/** \ingroup messaging
+/** \ingroup messaging 
  */
 
-/**
- * This is the base class for all messaging related exceptions thrown
- * by this API.
- */
-struct QPID_MESSAGING_CLASS_EXTERN MessagingException : public qpid::types::Exception
+struct MessagingException : public qpid::types::Exception 
 {
     QPID_MESSAGING_EXTERN MessagingException(const std::string& msg);
     QPID_MESSAGING_EXTERN virtual ~MessagingException() throw();
-
+    
     qpid::types::Variant::Map detail;
     //TODO: override what() to include detail if present
 };
 
-/**
- * Thrown when the syntax of the option string used to configure a
- * connection in not valid
- */
-struct QPID_MESSAGING_CLASS_EXTERN InvalidOptionString : public MessagingException
+struct InvalidOptionString : public MessagingException 
 {
     QPID_MESSAGING_EXTERN InvalidOptionString(const std::string& msg);
 };
 
-/**
- * Thrown to indicate a failed lookup of some local object. For
- * example when attempting to retrieve a session, sender or receiver
- * by name.
- */
-struct QPID_MESSAGING_CLASS_EXTERN KeyError : public MessagingException
+struct KeyError : public MessagingException
 {
     QPID_MESSAGING_EXTERN KeyError(const std::string&);
 };
 
-struct QPID_MESSAGING_CLASS_EXTERN LinkError : public MessagingException
+struct LinkError : public MessagingException
 {
     QPID_MESSAGING_EXTERN LinkError(const std::string&);
 };
 
-struct QPID_MESSAGING_CLASS_EXTERN AddressError : public LinkError
+struct AddressError : public LinkError
 {
     QPID_MESSAGING_EXTERN AddressError(const std::string&);
 };
@@ -78,118 +65,85 @@ struct QPID_MESSAGING_CLASS_EXTERN Addre
  * Thrown when a syntactically correct address cannot be resolved or
  * used.
  */
-struct QPID_MESSAGING_CLASS_EXTERN ResolutionError : public AddressError
+struct ResolutionError : public AddressError 
 {
     QPID_MESSAGING_EXTERN ResolutionError(const std::string& msg);
 };
 
-/**
- * Thrown when creating a sender or receiver for an address for which
- * some asserted property of the node is not matched.
- */
-struct QPID_MESSAGING_CLASS_EXTERN AssertionFailed : public ResolutionError
+struct AssertionFailed : public ResolutionError 
 {
     QPID_MESSAGING_EXTERN AssertionFailed(const std::string& msg);
 };
 
-/**
- * Thrown on attempts to create a sender or receiver to a non-existent
- * node.
- */
-struct QPID_MESSAGING_CLASS_EXTERN NotFound : public ResolutionError
+struct NotFound : public ResolutionError 
 {
     QPID_MESSAGING_EXTERN NotFound(const std::string& msg);
 };
 
 /**
- * Thrown when an address string with invalid syntax is used.
+ * Thrown when an address string with inalid sytanx is used.
  */
-struct QPID_MESSAGING_CLASS_EXTERN MalformedAddress : public AddressError
+struct MalformedAddress : public AddressError 
 {
     QPID_MESSAGING_EXTERN MalformedAddress(const std::string& msg);
 };
 
-struct QPID_MESSAGING_CLASS_EXTERN ReceiverError : public LinkError
+struct ReceiverError : public LinkError
 {
     QPID_MESSAGING_EXTERN ReceiverError(const std::string&);
 };
 
-struct QPID_MESSAGING_CLASS_EXTERN FetchError : public ReceiverError
+struct FetchError : public ReceiverError
 {
     QPID_MESSAGING_EXTERN FetchError(const std::string&);
 };
 
-/**
- * Thrown by Receiver::fetch(), Receiver::get() and
- * Session::nextReceiver() to indicate that there no message was
- * available before the timeout specified.
- */
-struct QPID_MESSAGING_CLASS_EXTERN NoMessageAvailable : public FetchError
+struct NoMessageAvailable : public FetchError
 {
     QPID_MESSAGING_EXTERN NoMessageAvailable();
 };
 
-struct QPID_MESSAGING_CLASS_EXTERN SenderError : public LinkError
+struct SenderError : public LinkError
 {
     QPID_MESSAGING_EXTERN SenderError(const std::string&);
 };
 
-struct QPID_MESSAGING_CLASS_EXTERN SendError : public SenderError
+struct SendError : public SenderError
 {
     QPID_MESSAGING_EXTERN SendError(const std::string&);
 };
 
-/**
- * Thrown to indicate that the sender attempted to send a message that
- * would result in the target node on the peer exceeding a
- * preconfigured capacity.
- */
-struct QPID_MESSAGING_CLASS_EXTERN TargetCapacityExceeded : public SendError
+struct TargetCapacityExceeded : public SendError
 {
     QPID_MESSAGING_EXTERN TargetCapacityExceeded(const std::string&);
 };
 
-struct QPID_MESSAGING_CLASS_EXTERN SessionError : public MessagingException
+struct SessionError : public MessagingException
 {
     QPID_MESSAGING_EXTERN SessionError(const std::string&);
 };
 
-struct QPID_MESSAGING_CLASS_EXTERN TransactionError : public SessionError
+struct TransactionError : public SessionError
 {
     QPID_MESSAGING_EXTERN TransactionError(const std::string&);
 };
 
-/**
- * Thrown on Session::commit() if reconnection results in the
- * transaction being automatically aborted.
- */
-struct QPID_MESSAGING_CLASS_EXTERN TransactionAborted : public TransactionError
+struct TransactionAborted : public TransactionError
 {
     QPID_MESSAGING_EXTERN TransactionAborted(const std::string&);
 };
 
-/**
- * Thrown to indicate that the application attempted to do something
- * for which it was not authorised by its peer.
- */
-struct QPID_MESSAGING_CLASS_EXTERN UnauthorizedAccess : public SessionError
+struct UnauthorizedAccess : public SessionError
 {
     QPID_MESSAGING_EXTERN UnauthorizedAccess(const std::string&);
 };
 
-struct QPID_MESSAGING_CLASS_EXTERN ConnectionError : public MessagingException
+struct ConnectionError : public MessagingException
 {
     QPID_MESSAGING_EXTERN ConnectionError(const std::string&);
 };
 
-/**
- * Thrown to indicate loss of underlying connection. When
- * auto-reconnect is used this will be caught by the library and used
- * to trigger reconnection attempts. If reconnection fails (according
- * to whatever settings have been configured), then an instnace of
- * this class will be thrown to signal that.
- */
-struct QPID_MESSAGING_CLASS_EXTERN TransportFailure : public MessagingException
+struct TransportFailure : public MessagingException
 {
     QPID_MESSAGING_EXTERN TransportFailure(const std::string&);
 };

Modified: qpid/branches/QPID-2519/cpp/include/qpid/sys/ExceptionHolder.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/sys/ExceptionHolder.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/sys/ExceptionHolder.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/sys/ExceptionHolder.h Fri Oct 21 01:19:00 2011
@@ -10,9 +10,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- *
+ * 
  *   http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -42,11 +42,14 @@ class ExceptionHolder : public Raisable 
   public:
     ExceptionHolder() {}
     // Use default copy & assign.
-
+    
     /** Take ownership of ex */
     template <class Ex> ExceptionHolder(Ex* ex) { wrap(ex); }
-    template <class Ex> ExceptionHolder& operator=(Ex* ex) { wrap(ex); return *this; }
+    template <class Ex> ExceptionHolder(const boost::shared_ptr<Ex>& ex) { wrap(ex.release()); }
 
+    template <class Ex> ExceptionHolder& operator=(Ex* ex) { wrap(ex); return *this; }
+    template <class Ex> ExceptionHolder& operator=(boost::shared_ptr<Ex> ex) { wrap(ex.release()); return *this; }
+        
     void raise() const { if (wrapper.get()) wrapper->raise() ; }
     std::string what() const { return wrapper.get() ? wrapper->what() : std::string(); }
     bool empty() const { return !wrapper.get(); }
@@ -63,7 +66,7 @@ class ExceptionHolder : public Raisable 
     template <class Ex> void wrap(Ex* ex) { wrapper.reset(new Wrapper<Ex>(ex)); }
     boost::shared_ptr<Raisable> wrapper;
 };
-
+    
 
 }} // namespace qpid::sys
 

Modified: qpid/branches/QPID-2519/cpp/include/qpid/sys/IntegerTypes.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/sys/IntegerTypes.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/sys/IntegerTypes.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/sys/IntegerTypes.h Fri Oct 21 01:19:00 2011
@@ -21,7 +21,7 @@
  *
  */
 
-#if (defined(_WINDOWS) || defined (WIN32))
+#if (defined(_WINDOWS) || defined (WIN32)) && defined(_MSC_VER)
 #include "qpid/sys/windows/IntegerTypes.h"
 #endif
 #if !defined _WINDOWS && !defined WIN32

Modified: qpid/branches/QPID-2519/cpp/include/qpid/sys/Runnable.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/sys/Runnable.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/sys/Runnable.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/sys/Runnable.h Fri Oct 21 01:19:00 2011
@@ -30,7 +30,7 @@ namespace sys {
 /**
  * Interface for objects that can be run, e.g. in a thread.
  */
-class QPID_COMMON_CLASS_EXTERN Runnable
+class Runnable
 {
   public:
     /** Type to represent a runnable as a Functor */

Modified: qpid/branches/QPID-2519/cpp/include/qpid/sys/Thread.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/sys/Thread.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/sys/Thread.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/sys/Thread.h Fri Oct 21 01:19:00 2011
@@ -25,11 +25,7 @@
 #include "qpid/CommonImportExport.h"
 
 #ifdef _WIN32
-#  ifdef _MSC_VER
-#    define QPID_TSS __declspec(thread)
-#  else
-#    define QPID_TSS __thread
-#  endif
+#  define QPID_TSS __declspec(thread)
 #elif defined (__GNUC__)
 #  define QPID_TSS __thread
 #elif defined (__SUNPRO_CC)

Modified: qpid/branches/QPID-2519/cpp/include/qpid/sys/Time.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/sys/Time.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/sys/Time.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/sys/Time.h Fri Oct 21 01:19:00 2011
@@ -119,7 +119,7 @@ class Duration {
     friend class AbsTime;
 
 public:
-    QPID_COMMON_INLINE_EXTERN inline Duration(int64_t time0 = 0);
+    QPID_COMMON_EXTERN inline Duration(int64_t time0 = 0);
     QPID_COMMON_EXTERN explicit Duration(const AbsTime& start, const AbsTime& finish);
     inline operator int64_t() const;
 };
@@ -167,9 +167,6 @@ QPID_COMMON_EXTERN void usleep(uint64_t 
 /** Output formatted date/time for now*/
 void outputFormattedNow(std::ostream&);
 
-/** Output unformatted nanosecond-resolution time for now */
-void outputHiresNow(std::ostream&);
-
 }}
 
 #endif  /*!_sys_Time_h*/

Modified: qpid/branches/QPID-2519/cpp/include/qpid/sys/windows/IntegerTypes.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/sys/windows/IntegerTypes.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/sys/windows/IntegerTypes.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/sys/windows/IntegerTypes.h Fri Oct 21 01:19:00 2011
@@ -22,17 +22,13 @@
  */
 
 typedef unsigned char    uint8_t;
+typedef char             int8_t;
 typedef unsigned short   uint16_t;
 typedef short            int16_t;
 typedef unsigned int     uint32_t;
 typedef int              int32_t;
-#if defined(_MSC_VER)
-typedef signed char      int8_t;
 typedef unsigned __int64 uint64_t;
 typedef          __int64 int64_t;
-#else
-#include <stdint.h>
-#endif
 
 // Visual Studio doesn't define other common types, so set them up here too.
 typedef unsigned int     uint;

Modified: qpid/branches/QPID-2519/cpp/include/qpid/types/Exception.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/types/Exception.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/types/Exception.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/types/Exception.h Fri Oct 21 01:19:00 2011
@@ -28,7 +28,7 @@
 namespace qpid {
 namespace types {
 
-class QPID_TYPES_CLASS_EXTERN Exception : public std::exception
+class Exception : public std::exception
 {
   public:
     QPID_TYPES_EXTERN explicit Exception(const std::string& message=std::string()) throw();

Modified: qpid/branches/QPID-2519/cpp/include/qpid/types/ImportExport.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/types/ImportExport.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/types/ImportExport.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/types/ImportExport.h Fri Oct 21 01:19:00 2011
@@ -20,16 +20,14 @@
  * under the License.
  */
 
-#include "qpid/ImportExport.h"
-
+#if defined(WIN32) && !defined(QPID_DECLARE_STATIC)
 #if defined(TYPES_EXPORT) || defined (qpidtypes_EXPORTS)
-#  define QPID_TYPES_EXTERN QPID_EXPORT
-#  define QPID_TYPES_CLASS_EXTERN QPID_CLASS_EXPORT
-#  define QPID_TYPES_INLINE_EXTERN QPID_INLINE_EXPORT
+#define QPID_TYPES_EXTERN __declspec(dllexport)
+#else
+#define QPID_TYPES_EXTERN __declspec(dllimport)
+#endif
 #else
-#  define QPID_TYPES_EXTERN QPID_IMPORT
-#  define QPID_TYPES_CLASS_EXTERN QPID_CLASS_IMPORT
-#  define QPID_TYPES_INLINE_EXTERN QPID_INLINE_IMPORT
+#define QPID_TYPES_EXTERN
 #endif
 
 #endif  /*!QPID_TYPES_IMPORTEXPORT_H*/

Modified: qpid/branches/QPID-2519/cpp/include/qpid/types/Uuid.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/types/Uuid.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/types/Uuid.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/types/Uuid.h Fri Oct 21 01:19:00 2011
@@ -29,7 +29,7 @@
 namespace qpid {
 namespace types {
 
-class QPID_TYPES_CLASS_EXTERN Uuid
+class Uuid
 {
   public:
     static const size_t SIZE;

Modified: qpid/branches/QPID-2519/cpp/include/qpid/types/Variant.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/include/qpid/types/Variant.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/include/qpid/types/Variant.h (original)
+++ qpid/branches/QPID-2519/cpp/include/qpid/types/Variant.h Fri Oct 21 01:19:00 2011
@@ -36,7 +36,7 @@ namespace types {
 /**
  * Thrown when an illegal conversion of a variant is attempted.
  */
-struct QPID_TYPES_CLASS_EXTERN InvalidConversion : public Exception 
+struct InvalidConversion : public Exception 
 {
     InvalidConversion(const std::string& msg);
 };
@@ -60,14 +60,12 @@ enum VariantType {
     VAR_UUID
 };
 
-std::string getTypeName(VariantType type);
-
 class VariantImpl;
 
 /**
  * Represents a value of variable type.
  */
-class QPID_TYPES_CLASS_EXTERN Variant
+class Variant
 {
   public:
     typedef std::map<std::string, Variant> Map;

Modified: qpid/branches/QPID-2519/cpp/managementgen/Makefile.am
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/managementgen/Makefile.am?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/managementgen/Makefile.am (original)
+++ qpid/branches/QPID-2519/cpp/managementgen/Makefile.am Fri Oct 21 01:19:00 2011
@@ -19,26 +19,20 @@
 qmfpythondir = $(pythondir)
 dist_bin_SCRIPTS = \
 	qmf-gen
-
-pkgpyexec_qmfgendir = $(pyexecdir)/qmfgen
-pkgpyexec_qmfgen_PYTHON = \
+nobase_qmfpython_DATA = \
 	qmfgen/__init__.py \
 	qmfgen/generate.py \
 	qmfgen/schema.py \
-	qmfgen/management-types.xml
-
-pkgpyexec_qmfgentmpldir = $(pyexecdir)/qmfgen/templates
-pkgpyexec_qmfgentmpl_PYTHON = \
 	qmfgen/templates/Args.h \
 	qmfgen/templates/Class.cpp \
 	qmfgen/templates/Class.h \
-	qmfgen/templates/CMakeLists.cmake \
 	qmfgen/templates/Event.cpp \
 	qmfgen/templates/Event.h \
 	qmfgen/templates/Makefile.mk \
 	qmfgen/templates/Package.cpp \
 	qmfgen/templates/Package.h \
 	qmfgen/templates/V2Package.cpp \
-	qmfgen/templates/V2Package.h
+	qmfgen/templates/V2Package.h \
+	qmfgen/management-types.xml
 
 EXTRA_DIST = $(nobase_qmfpython_DATA) CMakeLists.txt

Modified: qpid/branches/QPID-2519/cpp/managementgen/qmfgen/schema.py
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/managementgen/qmfgen/schema.py?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/managementgen/qmfgen/schema.py (original)
+++ qpid/branches/QPID-2519/cpp/managementgen/qmfgen/schema.py Fri Oct 21 01:19:00 2011
@@ -1731,9 +1731,9 @@ class SchemaPackage:
                   stream.write("            qmf::SchemaProperty arg(\"%s\", %s);\n" % (arg.name, typeName))
                   if subType:
                       stream.write("            arg.setSubtype(\"%s\");\n" % subType)
-                  if arg.unit:
+                  if stat.unit:
                       stream.write("            arg.setUnit(\"%s\");\n" % arg.unit)
-                  if arg.desc:
+                  if stat.desc:
                       stream.write("            arg.setDesc(\"%s\");\n" % arg.desc)
                   stream.write("            arg.setDirection(%s);\n" % self.qmfv2Dir(arg.dir))
                   stream.write("            method.addArgument(arg);\n")

Modified: qpid/branches/QPID-2519/cpp/rubygen/0-10/specification.rb
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/rubygen/0-10/specification.rb?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/rubygen/0-10/specification.rb (original)
+++ qpid/branches/QPID-2519/cpp/rubygen/0-10/specification.rb Fri Oct 21 01:19:00 2011
@@ -252,7 +252,7 @@ class Specification < CppGen
       include "#{@dir}/specification"
       namespace(@ns) { 
         genl "template <class F, class R=typename F::result_type>"
-        cpp_extern_class("QPID_COMMON_CLASS_EXTERN", "ProxyTemplate") {
+        cpp_class("ProxyTemplate") {
           public
           genl "ProxyTemplate(F f=F()) : functor(f) {}"
           @amqp.classes.each { |c|

Modified: qpid/branches/QPID-2519/cpp/rubygen/MethodBodyDefaultVisitor.rb
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/rubygen/MethodBodyDefaultVisitor.rb?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/rubygen/MethodBodyDefaultVisitor.rb (original)
+++ qpid/branches/QPID-2519/cpp/rubygen/MethodBodyDefaultVisitor.rb Fri Oct 21 01:19:00 2011
@@ -33,7 +33,7 @@ class MethodBodyDefaultVisitorGen < CppG
       include "qpid/framing/MethodBodyConstVisitor"
       namespace(@namespace) { 
         genl
-        cpp_extern_class("QPID_COMMON_CLASS_EXTERN", @classname, "public MethodBodyConstVisitor") {
+        cpp_class(@classname, "public MethodBodyConstVisitor") {
           genl "public:"
           genl "virtual void defaultVisit() = 0;"
           @amqp.methods_.each { |m|

Modified: qpid/branches/QPID-2519/cpp/rubygen/amqpgen.rb
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/rubygen/amqpgen.rb?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/rubygen/amqpgen.rb (original)
+++ qpid/branches/QPID-2519/cpp/rubygen/amqpgen.rb Fri Oct 21 01:19:00 2011
@@ -61,8 +61,7 @@ end
 class Module
   # Add trailing _ to avoid conflict with Object methods.
   def mangle(sym)
-    sym =  (sym.to_s+"_").to_sym if (Object.method_defined?(sym) or sym == :type)
-    sym
+    (Object.method_defined? sym) ? (sym.to_s+"_").intern : sym
   end
 
   # Add attribute reader for XML attribute.
@@ -191,8 +190,7 @@ class AmqpElement
     "command-fragments" => "session.command-fragment",
     "in-doubt" => "dtx.xid",
     "tx-publish" => "str-8",
-    "queues" => "str-8",
-    "prepared" => "str-8"
+    "queues" => "str-8"
   }
 
   def array_type(name)

Modified: qpid/branches/QPID-2519/cpp/rubygen/cppgen.rb
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/rubygen/cppgen.rb?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/rubygen/cppgen.rb (original)
+++ qpid/branches/QPID-2519/cpp/rubygen/cppgen.rb Fri Oct 21 01:19:00 2011
@@ -377,9 +377,6 @@ class CppGen < Generator
   def cpp_class(name, *bases, &block)
     struct_class("class", name, bases, &block);
   end
-  def cpp_extern_class(scope, name, *bases, &block)
-    struct_class("class "+scope, name, bases, &block);
-  end
 
   def typedef(type, name) genl "typedef #{type} #{name};\n"; end
 

Modified: qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb (original)
+++ qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb Fri Oct 21 01:19:00 2011
@@ -33,7 +33,7 @@ class MethodBodyDefaultVisitorGen < CppG
       include "qpid/CommonImportExport.h"
       namespace(@namespace) { 
         genl "class AMQMethodBody;"
-        cpp_extern_class("QPID_COMMON_CLASS_EXTERN", @classname, "public MethodBodyConstVisitor") {
+        cpp_class(@classname, "public MethodBodyConstVisitor") {
           genl "public:"
           genl "virtual void defaultVisit(const AMQMethodBody&) = 0;"
           @amqp.methods_.each { |m|

Modified: qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/OperationsInvoker.rb
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/OperationsInvoker.rb?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/OperationsInvoker.rb (original)
+++ qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/OperationsInvoker.rb Fri Oct 21 01:19:00 2011
@@ -69,7 +69,7 @@ class OperationsInvokerGen < CppGen
   def invoker_h(invoker, target, methods)
     return if methods.empty?
     genl
-    cpp_extern_class("QPID_COMMON_CLASS_EXTERN", invoker, "public qpid::framing::Invoker") {
+    cpp_class(invoker, "public qpid::framing::Invoker") {
       genl "#{target}& target;"
       public
       genl("Invoker(#{target}& target_) : target(target_) {}")

Modified: qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/Proxy.rb
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/Proxy.rb?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/Proxy.rb (original)
+++ qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/Proxy.rb Fri Oct 21 01:19:00 2011
@@ -37,7 +37,7 @@ class ProxyGen < CppGen
   
   def inner_class_decl(c)
     cname=c.name.caps
-    cpp_extern_class("QPID_COMMON_CLASS_EXTERN", cname, "public Proxy") {
+    cpp_class(cname, "public Proxy") {
           gen <<EOS
 public:
 #{cname}(FrameHandler& f) : Proxy(f) {}
@@ -69,7 +69,7 @@ EOS
       include "qpid/CommonImportExport.h"
 
       namespace("qpid::framing") { 
-        cpp_extern_class("QPID_COMMON_CLASS_EXTERN", @classname, "public Proxy") {
+        cpp_class(@classname, "public Proxy") {
           public
           genl "QPID_COMMON_EXTERN #{@classname}(FrameHandler& out);"
           genl

Modified: qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/Session.rb
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/Session.rb?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/Session.rb (original)
+++ qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/Session.rb Fri Oct 21 01:19:00 2011
@@ -56,8 +56,8 @@ module SyncAsync
   def decl_ctor_opeq()
     genl
     genl "QPID_CLIENT_EXTERN #{@classname}();"
-    genl "QPID_CLIENT_INLINE_EXTERN #{@classname}(const #{@version_base}& other);"
-    genl "QPID_CLIENT_INLINE_EXTERN #{@classname}& operator=(const #{@version_base}& other);"
+    genl "QPID_CLIENT_EXTERN #{@classname}(const #{@version_base}& other);"
+    genl "QPID_CLIENT_EXTERN #{@classname}& operator=(const #{@version_base}& other);"
   end
 
   def defn_ctor_opeq(inline="")

Modified: qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/structs.rb
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/structs.rb?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/structs.rb (original)
+++ qpid/branches/QPID-2519/cpp/rubygen/framing.0-10/structs.rb Fri Oct 21 01:19:00 2011
@@ -406,7 +406,7 @@ EOS
 namespace qpid {
 namespace framing {
 
-class QPID_COMMON_CLASS_EXTERN #{classname} #{inheritance} {
+class #{classname} #{inheritance} {
 EOS
   if (is_packed(s))
     indent { s.fields.each { |f| genl "#{f.cpptype.name} #{f.cppname};" unless f.type_ == "bit"} }

Modified: qpid/branches/QPID-2519/cpp/src/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/src/CMakeLists.txt?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/src/CMakeLists.txt (original)
+++ qpid/branches/QPID-2519/cpp/src/CMakeLists.txt Fri Oct 21 01:19:00 2011
@@ -96,7 +96,7 @@ MACRO (add_msvc_version_full verProject 
         inherit_value ("winver_${verProject}_InternalName"         "${verProject}")
         inherit_value ("winver_${verProject}_OriginalFilename"     "${verProject}.${verProjectFileExt}")
         inherit_value ("winver_${verProject}_ProductName"          "${winver_DESCRIPTION_SUMMARY}")
-
+        
         # Create strings to be substituted into the template file
         set ("winverFileVersionBinary"     "${winver_${verProject}_FileVersionBinary}")
         set ("winverProductVersionBinary"  "${winver_${verProject}_ProductVersionBinary}")
@@ -126,7 +126,7 @@ ENDMACRO (add_msvc_version_full)
 #
 MACRO (add_msvc_version verProject verProjectType verProjectFileExt)
     if (MSVC)
-        add_msvc_version_full (${verProject}
+        add_msvc_version_full (${verProject} 
                                ${verProjectType}
                                ${verProjectFileExt}
                                ${winver_FILE_VERSION_N1}
@@ -313,6 +313,10 @@ if (NOT Boost_FILESYSTEM_LIBRARY)
   set(Boost_FILESYSTEM_LIBRARY boost_filesystem)
 endif (NOT Boost_FILESYSTEM_LIBRARY)
 
+if (NOT Boost_SYSTEM_LIBRARY)
+  set(Boost_SYSTEM_LIBRARY boost_system)
+endif (NOT Boost_SYSTEM_LIBRARY)
+
 if (NOT Boost_UNIT_TEST_FRAMEWORK_LIBRARY)
   set(Boost_UNIT_TEST_FRAMEWORK_LIBRARY boost_unit_test_framework)
 endif (NOT Boost_UNIT_TEST_FRAMEWORK_LIBRARY)
@@ -580,15 +584,6 @@ include (ssl.cmake)
 check_symbol_exists (LOG_AUTHPRIV "sys/syslog.h" HAVE_LOG_AUTHPRIV)
 check_symbol_exists (LOG_FTP "sys/syslog.h" HAVE_LOG_FTP)
 
-# Allow MSVC user to select 'WinXP-SP3/Windows Server 2003' as build target version
-set (win32_winnt_default OFF)
-if (CMAKE_SYSTEM_NAME STREQUAL Windows)
-    if (MSVC)
-        set (win32_winnt_default ON)
-    endif (MSVC)
-endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
-option(SET_WIN32_WINNT "In Windows-MSVC build: define _WIN32_WINNT=0x0502 to select target version: Windows XP with SP3" ${win32_winnt_default})
-
 if (CMAKE_SYSTEM_NAME STREQUAL Windows)
   if (MSVC)
     add_definitions(
@@ -598,11 +593,10 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows)
       /wd4244
       /wd4800
       /wd4355
-      /wd4267
     )
-    if (SET_WIN32_WINNT)
-        add_definitions(/D "_WIN32_WINNT=0x0502")
-    endif (SET_WIN32_WINNT)
+    if (MSVC80)
+      add_definitions(/D "_WIN32_WINNT=0x0501")
+    endif (MSVC80)
 
     # set the RelWithDebInfo compile/link switches to equal Release
     set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD /O2 /Ob2 /D NDEBUG")
@@ -634,7 +628,6 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows)
     qpid/sys/windows/LockFile.cpp
     qpid/sys/windows/PipeHandle.cpp
     qpid/sys/windows/PollableCondition.cpp
-    qpid/sys/windows/SCM.cpp
     qpid/sys/windows/Shlib.cpp
     qpid/sys/windows/Socket.cpp
     qpid/sys/windows/SocketAddress.cpp
@@ -647,7 +640,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows)
   )
 
   set (qpidcommon_platform_LIBS
-    ${Boost_THREAD_LIBRARY} ${windows_ssl_libs} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_DATE_TIME_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY} ws2_32  )
+    ${windows_ssl_libs} ws2_32
+  )
   set (qpidbroker_platform_SOURCES
     qpid/broker/windows/BrokerDefaults.cpp
     qpid/broker/windows/SaslAuthenticator.cpp
@@ -666,8 +660,9 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows)
 
   set (qpidd_platform_SOURCES
     windows/QpiddBroker.cpp
+    windows/SCM.cpp
   )
-
+  
   set (qpidmessaging_platform_SOURCES
      qpid/messaging/HandleInstantiator.cpp
   )
@@ -925,6 +920,8 @@ set (qpidmessaging_SOURCES
      qpid/client/amqp0_10/SessionImpl.cpp
      qpid/client/amqp0_10/SenderImpl.h
      qpid/client/amqp0_10/SenderImpl.cpp
+     qpid/client/amqp0_10/SimpleUrlParser.h
+     qpid/client/amqp0_10/SimpleUrlParser.cpp
 )
 add_msvc_version (qpidmessaging library dll)
 
@@ -946,7 +943,7 @@ if (NOT QPID_GENERATED_HEADERS_IN_SOURCE
 endif (NOT QPID_GENERATED_HEADERS_IN_SOURCE)
 
 
-if (MSVC)
+if (WIN32)
     # Install the DtcPlugin project and call it qpidxarm.
     set(AMQP_WCF_DIR ${qpid-cpp_SOURCE_DIR}/../wcf)
     set(qpidxarm_SOURCES ${AMQP_WCF_DIR}/src/Apache/Qpid/DtcPlugin/DtcPlugin.cpp)
@@ -959,7 +956,7 @@ if (MSVC)
                  COMPONENT ${QPID_COMPONENT_CLIENT})
         install_pdb (qpidxarm ${QPID_COMPONENT_CLIENT})
     endif (EXISTS ${qpidxarm_SOURCES})
-endif (MSVC)
+endif (WIN32)
 
 set (qpidbroker_SOURCES
      ${mgen_broker_cpp}
@@ -977,8 +974,6 @@ set (qpidbroker_SOURCES
      qpid/broker/Queue.cpp
      qpid/broker/QueueCleaner.cpp
      qpid/broker/QueueListeners.cpp
-     qpid/broker/FifoDistributor.cpp
-     qpid/broker/MessageGroupManager.cpp
      qpid/broker/PersistableMessage.cpp
      qpid/broker/Bridge.cpp
      qpid/broker/Connection.cpp
@@ -995,6 +990,7 @@ set (qpidbroker_SOURCES
      qpid/broker/ExchangeRegistry.cpp
      qpid/broker/FanOutExchange.cpp
      qpid/broker/HeadersExchange.cpp
+     qpid/broker/IncompleteMessageList.cpp
      qpid/broker/Link.cpp
      qpid/broker/LinkRegistry.cpp
      qpid/broker/Message.cpp
@@ -1007,7 +1003,7 @@ set (qpidbroker_SOURCES
      qpid/broker/QueueEvents.cpp
      qpid/broker/QueuePolicy.cpp
      qpid/broker/QueueRegistry.cpp
-     qpid/broker/QueueFlowLimit.cpp
+     qpid/broker/RateTracker.cpp
      qpid/broker/RecoveryManagerImpl.cpp
      qpid/broker/RecoveredEnqueue.cpp
      qpid/broker/RecoveredDequeue.cpp
@@ -1073,15 +1069,13 @@ endif (CPACK_GENERATOR STREQUAL "NSIS")
 #  REVISION => Version of underlying implementation.
 #              Bump if implementation changes but API/ABI doesn't
 #  AGE      => Number of API/ABI versions this is backward compatible with
-set (qmf_version 2.0.0)
-set (qmf2_version 1.0.0)
+set (qmf_version 1.0.0)
 set (qmfengine_version 1.0.0)
 
 set (qmf_SOURCES
     qpid/agent/ManagementAgentImpl.cpp
     qpid/agent/ManagementAgentImpl.h
     )
-
 add_msvc_version (qmf library dll)
 add_library (qmf SHARED ${qmf_SOURCES})
 target_link_libraries (qmf qpidclient)
@@ -1092,88 +1086,6 @@ install (TARGETS qmf OPTIONAL
          COMPONENT ${QPID_COMPONENT_QMF})
 install_pdb (qmf ${QPID_COMPONENT_QMF})
 
-if(NOT WIN32)
-    set (qmf2_HEADERS
-        ../include/qmf/AgentEvent.h
-        ../include/qmf/Agent.h
-        ../include/qmf/AgentSession.h
-        ../include/qmf/ConsoleEvent.h
-        ../include/qmf/ConsoleSession.h
-        ../include/qmf/DataAddr.h
-        ../include/qmf/Data.h
-        ../include/qmf/exceptions.h
-        ../include/qmf/Handle.h
-        ../include/qmf/ImportExport.h
-        ../include/qmf/posix/EventNotifier.h
-        ../include/qmf/Query.h
-        ../include/qmf/Schema.h
-        ../include/qmf/SchemaId.h
-        ../include/qmf/SchemaMethod.h
-        ../include/qmf/SchemaProperty.h
-        ../include/qmf/SchemaTypes.h
-        ../include/qmf/Subscription.h
-        )
-
-    set (qmf2_SOURCES
-        ${qmf2_HEADERS}
-        qmf/agentCapability.h
-        qmf/Agent.cpp
-        qmf/AgentEvent.cpp
-        qmf/AgentEventImpl.h
-        qmf/AgentImpl.h
-        qmf/AgentSession.cpp
-        qmf/AgentSubscription.cpp
-        qmf/AgentSubscription.h
-        qmf/ConsoleEvent.cpp
-        qmf/ConsoleEventImpl.h
-        qmf/ConsoleSession.cpp
-        qmf/ConsoleSessionImpl.h
-        qmf/constants.cpp
-        qmf/constants.h
-        qmf/DataAddr.cpp
-        qmf/DataAddrImpl.h
-        qmf/Data.cpp
-        qmf/DataImpl.h
-        qmf/EventNotifierImpl.h
-        qmf/EventNotifierImpl.cpp
-        qmf/PosixEventNotifier.cpp
-        qmf/PosixEventNotifierImpl.cpp
-        qmf/exceptions.cpp
-        qmf/Expression.cpp
-        qmf/Expression.h
-        qmf/Hash.cpp
-        qmf/Hash.h
-        qmf/PrivateImplRef.h
-        qmf/Query.cpp
-        qmf/QueryImpl.h
-        qmf/Schema.cpp
-        qmf/SchemaCache.cpp
-        qmf/SchemaCache.h
-        qmf/SchemaId.cpp
-        qmf/SchemaIdImpl.h
-        qmf/SchemaImpl.h
-        qmf/SchemaMethod.cpp
-        qmf/SchemaMethodImpl.h
-        qmf/SchemaProperty.cpp
-        qmf/SchemaPropertyImpl.h
-        qmf/Subscription.cpp
-        qmf/SubscriptionImpl.h
-        )
-
-    add_msvc_version (qmf2 library dll)
-    add_library (qmf2 SHARED ${qmf2_SOURCES})
-    target_link_libraries (qmf2 qpidmessaging qpidtypes qpidclient qpidcommon)
-    set_target_properties (qmf2 PROPERTIES
-                        VERSION ${qmf2_version})
-    install (TARGETS qmf2 OPTIONAL
-            DESTINATION ${QPID_INSTALL_LIBDIR}
-            COMPONENT ${QPID_COMPONENT_QMF})
-    install (FILES ${qmf2_HEADERS}
-            DESTINATION ${QPID_INSTALL_INCLUDEDIR}/qmf
-            COMPONENT ${QPID_COMPONENT_QMF})
-    install_pdb (qmf2 ${QPID_COMPONENT_QMF})
-endif (NOT WIN32)
-
 set (qmfengine_SOURCES
      qmf/engine/Agent.cpp
      qmf/engine/BrokerProxyImpl.cpp

Propchange: qpid/branches/QPID-2519/cpp/src/CMakeLists.txt
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 21 01:19:00 2011
@@ -2,6 +2,3 @@
 /qpid/branches/0.6-release-windows-installer/cpp/src/CMakeLists.txt:926803
 /qpid/branches/0.6-release-windows-installer/qpid/cpp/src/CMakeLists.txt:926803,927233,932132
 /qpid/branches/java-network-refactor/qpid/cpp/src/CMakeLists.txt:805429-825319
-/qpid/branches/qpid-2935/qpid/cpp/src/CMakeLists.txt:1061302-1072333
-/qpid/branches/qpid-3346/qpid/cpp/src/CMakeLists.txt:1144319-1179855
-/qpid/trunk/qpid/cpp/src/CMakeLists.txt:1072051-1185907

Modified: qpid/branches/QPID-2519/cpp/src/CMakeWinVersions.cmake
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/src/CMakeWinVersions.cmake?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/src/CMakeWinVersions.cmake (original)
+++ qpid/branches/QPID-2519/cpp/src/CMakeWinVersions.cmake Fri Oct 21 01:19:00 2011
@@ -34,11 +34,11 @@
 # set ("winver_PACKAGE_NAME"         "qpid-cpp")
 # set ("winver_DESCRIPTION_SUMMARY"  "Apache Qpid C++")
 # set ("winver_FILE_VERSION_N1"      "0")
-# set ("winver_FILE_VERSION_N2"      "11")
+# set ("winver_FILE_VERSION_N2"      "9")
 # set ("winver_FILE_VERSION_N3"      "0")
 # set ("winver_FILE_VERSION_N4"      "0")
 # set ("winver_PRODUCT_VERSION_N1"   "0")
-# set ("winver_PRODUCT_VERSION_N2"   "11")
+# set ("winver_PRODUCT_VERSION_N2"   "9")
 # set ("winver_PRODUCT_VERSION_N3"   "0")
 # set ("winver_PRODUCT_VERSION_N4"   "0")
 # set ("winver_LEGAL_COPYRIGHT"      "")
@@ -46,10 +46,10 @@
 #
 # Specification of per-project settings:
 #
-# set ("winver_${projectName}_FileVersionBinary"    "0,11,0,0")
-# set ("winver_${projectName}_ProductVersionBinary" "0,11,0,0")
-# set ("winver_${projectName}_FileVersionString"    "0, 11, 0, 0")
-# set ("winver_${projectName}_ProductVersionString" "0, 11, 0, 0")
+# set ("winver_${projectName}_FileVersionBinary"    "0,9,0,0")
+# set ("winver_${projectName}_ProductVersionBinary" "0,9,0,0")
+# set ("winver_${projectName}_FileVersionString"    "0, 9, 0, 0")
+# set ("winver_${projectName}_ProductVersionString" "0, 9, 0, 0")
 # set ("winver_${projectName}_FileDescription"      "qpid-cpp-qpidcommon Library")
 # set ("winver_${projectName}_LegalCopyright"       "")
 # set ("winver_${projectName}_InternalName"         "qpidcommon")

Modified: qpid/branches/QPID-2519/cpp/src/Makefile.am
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/src/Makefile.am?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/src/Makefile.am (original)
+++ qpid/branches/QPID-2519/cpp/src/Makefile.am Fri Oct 21 01:19:00 2011
@@ -37,7 +37,6 @@ windows_dist = \
   qpid/sys/windows/IOHandle.cpp \
   qpid/sys/windows/IoHandlePrivate.h \
   qpid/sys/windows/LockFile.cpp \
-  qpid/sys/windows/mingw32_compat.h \
   qpid/sys/windows/PollableCondition.cpp \
   qpid/sys/windows/PipeHandle.cpp \
   ../include/qpid/sys/windows/Mutex.h \
@@ -89,7 +88,7 @@ rgen_cmd=ruby -I $(rgen_dir) $(rgen_dir)
 
 $(rgen_srcs) $(srcdir)/rubygen.mk: rgen.timestamp
 rgen.timestamp: $(rgen_generator) $(specs)
-	$(rgen_cmd) $(srcdir)/rubygen.mk && touch $@
+	$(rgen_cmd) $(srcdir)/rubygen.mk; touch $@
 $(rgen_generator):
 
 # The CMake version is needed for dist
@@ -128,14 +127,14 @@ qpidexec_SCRIPTS =
 qpidtestdir = $(qpidexecdir)/tests
 qpidtest_PROGRAMS =
 qpidtest_SCRIPTS =
-tmoduleexecdir = $(libdir)/qpid/tests
-tmoduleexec_LTLIBRARIES=
+tmoduledir = $(libdir)/qpid/tests
+tmodule_LTLIBRARIES=
 
 AM_CXXFLAGS += -DBOOST_FILESYSTEM_VERSION=2
 
 ## Automake macros to build libraries and executables.
-qpidd_CXXFLAGS = $(AM_CXXFLAGS) -DQPIDD_MODULE_DIR=\"$(dmoduleexecdir)\" -DQPIDD_CONF_FILE=\"$(sysconfdir)/qpidd.conf\"
-libqpidclient_la_CXXFLAGS = $(AM_CXXFLAGS) -DQPIDC_MODULE_DIR=\"$(cmoduleexecdir)\" -DQPIDC_CONF_FILE=\"$(confdir)/qpidc.conf\"
+qpidd_CXXFLAGS = $(AM_CXXFLAGS) -DQPIDD_MODULE_DIR=\"$(dmoduledir)\" -DQPIDD_CONF_FILE=\"$(sysconfdir)/qpidd.conf\"
+libqpidclient_la_CXXFLAGS = $(AM_CXXFLAGS) -DQPIDC_MODULE_DIR=\"$(cmoduledir)\" -DQPIDC_CONF_FILE=\"$(confdir)/qpidc.conf\"
 
 qpidd_LDADD =					\
   libqpidbroker.la				\
@@ -177,7 +176,7 @@ nobase_include_HEADERS +=			\
   ../include/qpid/sys/posix/Time.h		\
   ../include/qpid/sys/posix/check.h
 
-if HAVE_EPOLL
+if HAVE_EPOLL 
   poller = qpid/sys/epoll/EpollPoller.cpp
 endif
 
@@ -196,15 +195,15 @@ libqpidcommon_la_SOURCES += $(poller) $(
 posix_broker_src = \
   qpid/broker/posix/BrokerDefaults.cpp
 
-lib_LTLIBRARIES = libqpidtypes.la libqpidcommon.la libqpidbroker.la libqpidclient.la libqpidmessaging.la
+lib_LTLIBRARIES = libqpidtypes.la libqpidcommon.la libqpidbroker.la libqpidclient.la libqpidmessaging.la 
 
 # Definitions for client and daemon plugins
 PLUGINLDFLAGS=-no-undefined -module -avoid-version
 confdir=$(sysconfdir)/qpid
-dmoduleexecdir=$(libdir)/qpid/daemon
-cmoduleexecdir=$(libdir)/qpid/client
-dmoduleexec_LTLIBRARIES =
-cmoduleexec_LTLIBRARIES =
+dmoduledir=$(libdir)/qpid/daemon
+cmoduledir=$(libdir)/qpid/client
+dmodule_LTLIBRARIES =
+cmodule_LTLIBRARIES = 
 
 include cluster.mk
 include acl.mk
@@ -246,7 +245,7 @@ rdma_la_LIBADD = \
 rdma_la_LDFLAGS = $(PLUGINLDFLAGS)
 rdma_la_CXXFLAGS = \
   $(AM_CXXFLAGS) -Wno-missing-field-initializers
-dmoduleexec_LTLIBRARIES += \
+dmodule_LTLIBRARIES += \
   rdma.la
 
 rdmaconnector_la_SOURCES = \
@@ -258,7 +257,7 @@ rdmaconnector_la_LIBADD = \
 rdmaconnector_la_LDFLAGS = $(PLUGINLDFLAGS)
 rdmaconnector_la_CXXFLAGS = \
   $(AM_CXXFLAGS) -Wno-missing-field-initializers
-cmoduleexec_LTLIBRARIES += \
+cmodule_LTLIBRARIES += \
   rdmaconnector.la
 
 # RDMA test/sample programs
@@ -333,7 +332,6 @@ libqpidcommon_la_SOURCES +=			\
   qpid/Address.cpp				\
   qpid/DataDir.cpp				\
   qpid/DataDir.h				\
-  qpid/DisableExceptionLogging.h		\
   qpid/Exception.cpp				\
   qpid/Modules.cpp				\
   qpid/Modules.h				\
@@ -343,7 +341,6 @@ libqpidcommon_la_SOURCES +=			\
   qpid/RefCounted.h				\
   qpid/RefCountedBuffer.cpp			\
   qpid/RefCountedBuffer.h			\
-  qpid/BufferRef.h				\
   qpid/Sasl.h                                   \
   qpid/SaslFactory.cpp                          \
   qpid/SaslFactory.h                            \
@@ -564,7 +561,8 @@ libqpidbroker_la_SOURCES = \
   qpid/broker/HandlerImpl.h \
   qpid/broker/HeadersExchange.cpp \
   qpid/broker/HeadersExchange.h \
-  qpid/broker/AsyncCompletion.h \
+  qpid/broker/IncompleteMessageList.cpp \
+  qpid/broker/IncompleteMessageList.h \
   qpid/broker/LegacyLVQ.h \
   qpid/broker/LegacyLVQ.cpp \
   qpid/broker/Link.cpp \
@@ -614,9 +612,9 @@ libqpidbroker_la_SOURCES = \
   qpid/broker/QueueRegistry.cpp \
   qpid/broker/QueueRegistry.h \
   qpid/broker/QueuedMessage.h \
-  qpid/broker/QueueFlowLimit.h \
-  qpid/broker/QueueFlowLimit.cpp \
   qpid/broker/RateFlowcontrol.h \
+  qpid/broker/RateTracker.cpp \
+  qpid/broker/RateTracker.h \
   qpid/broker/RecoverableConfig.h \
   qpid/broker/RecoverableExchange.h \
   qpid/broker/RecoverableMessage.h \
@@ -653,7 +651,6 @@ libqpidbroker_la_SOURCES = \
   qpid/broker/SessionState.h \
   qpid/broker/SignalHandler.cpp \
   qpid/broker/SignalHandler.h \
-  qpid/broker/StatefulQueueObserver.h \
   qpid/broker/System.cpp \
   qpid/broker/System.h \
   qpid/broker/ThresholdAlerts.cpp \
@@ -671,11 +668,6 @@ libqpidbroker_la_SOURCES = \
   qpid/broker/TxPublish.h \
   qpid/broker/Vhost.cpp \
   qpid/broker/Vhost.h \
-  qpid/broker/MessageDistributor.h \
-  qpid/broker/FifoDistributor.h \
-  qpid/broker/FifoDistributor.cpp \
-  qpid/broker/MessageGroupManager.cpp \
-  qpid/broker/MessageGroupManager.h \
   qpid/management/ManagementAgent.cpp \
   qpid/management/ManagementAgent.h \
   qpid/management/ManagementDirectExchange.cpp \
@@ -747,7 +739,7 @@ libqpidclient_la_SOURCES =			\
 QPIDCLIENT_VERSION_INFO  = 2:0:0
 libqpidclient_la_LDFLAGS = -version-info $(QPIDCLIENT_VERSION_INFO)
 
-libqpidtypes_la_LIBADD= -luuid
+libqpidtypes_la_libadd=-luuid
 libqpidtypes_la_SOURCES=			\
   qpid/types/Exception.cpp			\
   qpid/types/Uuid.cpp				\
@@ -794,7 +786,9 @@ libqpidmessaging_la_SOURCES =			\
   qpid/client/amqp0_10/SessionImpl.h		\
   qpid/client/amqp0_10/SessionImpl.cpp		\
   qpid/client/amqp0_10/SenderImpl.h		\
-  qpid/client/amqp0_10/SenderImpl.cpp
+  qpid/client/amqp0_10/SenderImpl.cpp           \
+  qpid/client/amqp0_10/SimpleUrlParser.h	\
+  qpid/client/amqp0_10/SimpleUrlParser.cpp
 
 QPIDMESSAGING_VERSION_INFO  = 2:0:0
 libqpidmessaging_la_LDFLAGS = -version-info $(QPIDMESSAGING_VERSION_INFO)
@@ -807,7 +801,6 @@ nobase_include_HEADERS +=			\
   ../include/qpid/Address.h			\
   ../include/qpid/CommonImportExport.h		\
   ../include/qpid/Exception.h			\
-  ../include/qpid/ImportExport.h		\
   ../include/qpid/InlineAllocator.h		\
   ../include/qpid/InlineVector.h		\
   ../include/qpid/Msg.h				\
@@ -890,10 +883,14 @@ nobase_include_HEADERS +=			\
   ../include/qpid/types/Variant.h		\
   ../include/qpid/types/ImportExport.h
 
+# Force build of qpidd during dist phase so help2man will work.
+dist-hook: $(BUILT_SOURCES)
+	$(MAKE) qpidd
+
 # Create the default data directory
 install-data-local:
 	$(mkinstalldirs) $(DESTDIR)/$(localstatedir)/lib/qpidd
 
-# Support for pkg-config
+# Support for pkg-config 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = qpid.pc

Modified: qpid/branches/QPID-2519/cpp/src/acl.mk
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/src/acl.mk?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/src/acl.mk (original)
+++ qpid/branches/QPID-2519/cpp/src/acl.mk Fri Oct 21 01:19:00 2011
@@ -18,8 +18,8 @@
 #
 #
 # acl library makefile fragment, to be included in Makefile.am
-#
-dmoduleexec_LTLIBRARIES += acl.la
+# 
+dmodule_LTLIBRARIES += acl.la
 
 acl_la_SOURCES = \
   qpid/acl/Acl.cpp \

Modified: qpid/branches/QPID-2519/cpp/src/cluster.mk
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/src/cluster.mk?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/src/cluster.mk (original)
+++ qpid/branches/QPID-2519/cpp/src/cluster.mk Fri Oct 21 01:19:00 2011
@@ -18,7 +18,7 @@
 #
 #
 # Cluster library makefile fragment, to be included in Makefile.am
-#
+# 
 
 # Optional CMAN support
 
@@ -34,7 +34,7 @@ endif
 
 if HAVE_LIBCPG
 
-dmoduleexec_LTLIBRARIES += cluster.la
+dmodule_LTLIBRARIES += cluster.la
 
 cluster_la_SOURCES =				\
   $(CMAN_SOURCES)				\
@@ -102,7 +102,7 @@ cluster_la_CXXFLAGS = $(AM_CXXFLAGS) -fn
 cluster_la_LDFLAGS = $(PLUGINLDFLAGS)
 
 # The watchdog plugin and helper executable
-dmoduleexec_LTLIBRARIES += watchdog.la
+dmodule_LTLIBRARIES += watchdog.la
 watchdog_la_SOURCES = qpid/cluster/WatchDogPlugin.cpp
 watchdog_la_LIBADD = libqpidbroker.la
 watchdog_la_LDFLAGS = $(PLUGINLDFLAGS)

Modified: qpid/branches/QPID-2519/cpp/src/posix/QpiddBroker.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/src/posix/QpiddBroker.cpp?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/src/posix/QpiddBroker.cpp (original)
+++ qpid/branches/QPID-2519/cpp/src/posix/QpiddBroker.cpp Fri Oct 21 01:19:00 2011
@@ -138,9 +138,6 @@ struct QpiddDaemon : public Daemon {
         brokerPtr->accept();
         uint16_t port=brokerPtr->getPort(options->daemon.transport);
         ready(port);            // Notify parent.
-        if (options->parent->broker.enableMgmt && (options->parent->broker.port == 0 || options->daemon.transport != TCP)) {
-            dynamic_cast<qmf::org::apache::qpid::broker::Broker*>(brokerPtr->GetManagementObject())->set_port(port);
-        }
         brokerPtr->run();
     }
 };
@@ -185,13 +182,8 @@ int QpiddBroker::execute (QpiddOptions *
         boost::intrusive_ptr<Broker> brokerPtr(new Broker(options->broker));
         ScopedSetBroker ssb(brokerPtr);
         brokerPtr->accept();
-        if (options->broker.port == 0 || myOptions->daemon.transport != TCP) {
-            uint16_t port = brokerPtr->getPort(myOptions->daemon.transport);
-            cout << port << endl;
-            if (options->broker.enableMgmt) {
-                dynamic_cast<qmf::org::apache::qpid::broker::Broker*>(brokerPtr->GetManagementObject())->set_port(port);
-            }
-        }
+        if (options->broker.port == 0 || myOptions->daemon.transport != TCP)
+            cout << uint16_t(brokerPtr->getPort(myOptions->daemon.transport)) << endl;
         brokerPtr->run();
     }
     return 0;

Modified: qpid/branches/QPID-2519/cpp/src/qmf.mk
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/src/qmf.mk?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/src/qmf.mk (original)
+++ qpid/branches/QPID-2519/cpp/src/qmf.mk Fri Oct 21 01:19:00 2011
@@ -43,7 +43,6 @@ QMF2_API =				\
   ../include/qmf/ConsoleSession.h	\
   ../include/qmf/DataAddr.h		\
   ../include/qmf/Data.h			\
-  ../include/qmf/posix/EventNotifier.h	\
   ../include/qmf/exceptions.h		\
   ../include/qmf/Handle.h		\
   ../include/qmf/ImportExport.h		\
@@ -93,7 +92,6 @@ libqmf2_la_SOURCES = 		\
   qmf/AgentEventImpl.h		\
   qmf/AgentImpl.h		\
   qmf/AgentSession.cpp		\
-  qmf/AgentSessionImpl.h	\
   qmf/AgentSubscription.cpp	\
   qmf/AgentSubscription.h	\
   qmf/ConsoleEvent.cpp		\
@@ -106,22 +104,17 @@ libqmf2_la_SOURCES = 		\
   qmf/DataAddrImpl.h		\
   qmf/Data.cpp			\
   qmf/DataImpl.h		\
-  qmf/EventNotifierImpl.cpp	\
-  qmf/EventNotifierImpl.h	\
   qmf/exceptions.cpp		\
   qmf/Expression.cpp		\
   qmf/Expression.h		\
   qmf/Hash.cpp			\
   qmf/Hash.h			\
-  qmf/PosixEventNotifier.cpp	\
-  qmf/PosixEventNotifierImpl.cpp \
-  qmf/PosixEventNotifierImpl.h	\
   qmf/PrivateImplRef.h		\
   qmf/Query.cpp			\
   qmf/QueryImpl.h		\
+  qmf/Schema.cpp		\
   qmf/SchemaCache.cpp		\
   qmf/SchemaCache.h		\
-  qmf/Schema.cpp		\
   qmf/SchemaId.cpp		\
   qmf/SchemaIdImpl.h		\
   qmf/SchemaImpl.h		\

Modified: qpid/branches/QPID-2519/cpp/src/qmf/Agent.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/src/qmf/Agent.cpp?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/src/qmf/Agent.cpp (original)
+++ qpid/branches/QPID-2519/cpp/src/qmf/Agent.cpp Fri Oct 21 01:19:00 2011
@@ -72,7 +72,7 @@ Schema Agent::getSchema(const SchemaId& 
 
 AgentImpl::AgentImpl(const std::string& n, uint32_t e, ConsoleSessionImpl& s) :
     name(n), directSubject(n), epoch(e), session(s), touched(true), untouchedCount(0), capability(0),
-    sender(session.directSender), schemaCache(s.schemaCache)
+    sender(session.directSender), nextCorrelator(1), schemaCache(s.schemaCache)
 {
 }
 
@@ -102,11 +102,12 @@ const Variant& AgentImpl::getAttribute(c
 ConsoleEvent AgentImpl::query(const Query& query, Duration timeout)
 {
     boost::shared_ptr<SyncContext> context(new SyncContext());
-    uint32_t correlator(session.correlator());
+    uint32_t correlator;
     ConsoleEvent result;
 
     {
         qpid::sys::Mutex::ScopedLock l(lock);
+        correlator = nextCorrelator++;
         contextMap[correlator] = context;
     }
     try {
@@ -150,7 +151,12 @@ ConsoleEvent AgentImpl::query(const stri
 
 uint32_t AgentImpl::queryAsync(const Query& query)
 {
-    uint32_t correlator(session.correlator());
+    uint32_t correlator;
+
+    {
+        qpid::sys::Mutex::ScopedLock l(lock);
+        correlator = nextCorrelator++;
+    }
 
     sendQuery(query, correlator);
     return correlator;
@@ -166,11 +172,12 @@ uint32_t AgentImpl::queryAsync(const str
 ConsoleEvent AgentImpl::callMethod(const string& method, const Variant::Map& args, const DataAddr& addr, Duration timeout)
 {
     boost::shared_ptr<SyncContext> context(new SyncContext());
-    uint32_t correlator(session.correlator());
+    uint32_t correlator;
     ConsoleEvent result;
 
     {
         qpid::sys::Mutex::ScopedLock l(lock);
+        correlator = nextCorrelator++;
         contextMap[correlator] = context;
     }
     try {
@@ -206,7 +213,12 @@ ConsoleEvent AgentImpl::callMethod(const
 
 uint32_t AgentImpl::callMethodAsync(const string& method, const Variant::Map& args, const DataAddr& addr)
 {
-    uint32_t correlator(session.correlator());
+    uint32_t correlator;
+
+    {
+        qpid::sys::Mutex::ScopedLock l(lock);
+        correlator = nextCorrelator++;
+    }
 
     sendMethod(method, args, addr, correlator);
     return correlator;
@@ -584,7 +596,12 @@ void AgentImpl::sendMethod(const string&
 
 void AgentImpl::sendSchemaRequest(const SchemaId& id)
 {
-    uint32_t correlator(session.correlator());
+    uint32_t correlator;
+
+    {
+        qpid::sys::Mutex::ScopedLock l(lock);
+        correlator = nextCorrelator++;
+    }
 
     if (capability >= AGENT_CAPABILITY_V2_SCHEMA) {
         Query query(QUERY_SCHEMA, id);

Modified: qpid/branches/QPID-2519/cpp/src/qmf/AgentImpl.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/src/qmf/AgentImpl.h?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/src/qmf/AgentImpl.h (original)
+++ qpid/branches/QPID-2519/cpp/src/qmf/AgentImpl.h Fri Oct 21 01:19:00 2011
@@ -99,6 +99,7 @@ namespace qmf {
         uint32_t capability;
         qpid::messaging::Sender sender;
         qpid::types::Variant::Map attributes;
+        uint32_t nextCorrelator;
         std::map<uint32_t, boost::shared_ptr<SyncContext> > contextMap;
         boost::shared_ptr<SchemaCache> schemaCache;
         mutable std::set<std::string> packageSet;

Modified: qpid/branches/QPID-2519/cpp/src/qmf/AgentSession.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-2519/cpp/src/qmf/AgentSession.cpp?rev=1187150&r1=1187149&r2=1187150&view=diff
==============================================================================
--- qpid/branches/QPID-2519/cpp/src/qmf/AgentSession.cpp (original)
+++ qpid/branches/QPID-2519/cpp/src/qmf/AgentSession.cpp Fri Oct 21 01:19:00 2011
@@ -19,7 +19,132 @@
  *
  */
 
-#include "qmf/AgentSessionImpl.h"
+#include "qpid/RefCounted.h"
+#include "qmf/PrivateImplRef.h"
+#include "qmf/exceptions.h"
+#include "qmf/AgentSession.h"
+#include "qmf/AgentEventImpl.h"
+#include "qmf/SchemaIdImpl.h"
+#include "qmf/SchemaImpl.h"
+#include "qmf/DataAddrImpl.h"
+#include "qmf/DataImpl.h"
+#include "qmf/QueryImpl.h"
+#include "qmf/agentCapability.h"
+#include "qmf/constants.h"
+#include "qpid/sys/Mutex.h"
+#include "qpid/sys/Condition.h"
+#include "qpid/sys/Thread.h"
+#include "qpid/sys/Runnable.h"
+#include "qpid/log/Statement.h"
+#include "qpid/messaging/Connection.h"
+#include "qpid/messaging/Session.h"
+#include "qpid/messaging/Receiver.h"
+#include "qpid/messaging/Sender.h"
+#include "qpid/messaging/Message.h"
+#include "qpid/messaging/AddressParser.h"
+#include "qpid/management/Buffer.h"
+#include <queue>
+#include <map>
+#include <set>
+#include <iostream>
+#include <memory>
+
+using namespace std;
+using namespace qpid::messaging;
+using namespace qmf;
+using qpid::types::Variant;
+
+namespace qmf {
+    class AgentSessionImpl : public virtual qpid::RefCounted, public qpid::sys::Runnable {
+    public:
+        ~AgentSessionImpl();
+
+        //
+        // Methods from API handle
+        //
+        AgentSessionImpl(Connection& c, const string& o);
+        void setDomain(const string& d) { checkOpen(); domain = d; }
+        void setVendor(const string& v) { checkOpen(); attributes["_vendor"] = v; }
+        void setProduct(const string& p) { checkOpen(); attributes["_product"] = p; }
+        void setInstance(const string& i) { checkOpen(); attributes["_instance"] = i; }
+        void setAttribute(const string& k, const qpid::types::Variant& v) { checkOpen(); attributes[k] = v; }
+        const string& getName() const { return agentName; }
+        void open();
+        void close();
+        bool nextEvent(AgentEvent& e, Duration t);
+
+        void registerSchema(Schema& s);
+        DataAddr addData(Data& d, const string& n, bool persist);
+        void delData(const DataAddr&);
+
+        void authAccept(AgentEvent& e);
+        void authReject(AgentEvent& e, const string& m);
+        void raiseException(AgentEvent& e, const string& s);
+        void raiseException(AgentEvent& e, const Data& d);
+        void response(AgentEvent& e, const Data& d);
+        void complete(AgentEvent& e);
+        void methodSuccess(AgentEvent& e);
+        void raiseEvent(const Data& d);
+        void raiseEvent(const Data& d, int s);
+
+    private:
+        typedef map<DataAddr, Data, DataAddrCompare> DataIndex;
+        typedef map<SchemaId, Schema, SchemaIdCompare> SchemaMap;
+
+        mutable qpid::sys::Mutex lock;
+        qpid::sys::Condition cond;
+        Connection connection;
+        Session session;
+        Sender directSender;
+        Sender topicSender;
+        string domain;
+        Variant::Map attributes;
+        Variant::Map options;
+        string agentName;
+        bool opened;
+        queue<AgentEvent> eventQueue;
+        qpid::sys::Thread* thread;
+        bool threadCanceled;
+        uint32_t bootSequence;
+        uint32_t interval;
+        uint64_t lastHeartbeat;
+        uint64_t lastVisit;
+        bool forceHeartbeat;
+        bool externalStorage;
+        bool autoAllowQueries;
+        bool autoAllowMethods;
+        uint32_t maxSubscriptions;
+        uint32_t minSubInterval;
+        uint32_t subLifetime;
+        bool publicEvents;
+        bool listenOnDirect;
+        bool strictSecurity;
+        uint64_t schemaUpdateTime;
+        string directBase;
+        string topicBase;
+
+        SchemaMap schemata;
+        DataIndex globalIndex;
+        map<SchemaId, DataIndex, SchemaIdCompareNoHash> schemaIndex;
+
+        void checkOpen();
+        void setAgentName();
+        void enqueueEvent(const AgentEvent&);
+        void handleLocateRequest(const Variant::List& content, const Message& msg);
+        void handleMethodRequest(const Variant::Map& content, const Message& msg);
+        void handleQueryRequest(const Variant::Map& content, const Message& msg);
+        void handleSchemaRequest(AgentEvent&);
+        void handleV1SchemaRequest(qpid::management::Buffer&, uint32_t, const Message&);
+        void dispatch(Message);
+        void sendHeartbeat();
+        void send(Message, const Address&);
+        void flushResponses(AgentEvent&, bool);
+        void periodicProcessing(uint64_t);
+        void run();
+    };
+}
+
+typedef qmf::PrivateImplRef<AgentSession> PI;
 
 AgentSession::AgentSession(AgentSessionImpl* impl) { PI::ctor(*this, impl); }
 AgentSession::AgentSession(const AgentSession& s) : qmf::Handle<AgentSessionImpl>() { PI::copy(*this, s); }
@@ -36,7 +161,6 @@ const string& AgentSession::getName() co
 void AgentSession::open() { impl->open(); }
 void AgentSession::close() { impl->close(); }
 bool AgentSession::nextEvent(AgentEvent& e, Duration t) { return impl->nextEvent(e, t); }
-int AgentSession::pendingEvents() const { return impl->pendingEvents(); }
 void AgentSession::registerSchema(Schema& s) { impl->registerSchema(s); }
 DataAddr AgentSession::addData(Data& d, const string& n, bool p) { return impl->addData(d, n, p); }
 void AgentSession::delData(const DataAddr& a) { impl->delData(a); }
@@ -55,11 +179,11 @@ void AgentSession::raiseEvent(const Data
 //========================================================================================
 
 AgentSessionImpl::AgentSessionImpl(Connection& c, const string& options) :
-    connection(c), domain("default"), opened(false), eventNotifier(0), thread(0), threadCanceled(false),
+    connection(c), domain("default"), opened(false), thread(0), threadCanceled(false),
     bootSequence(1), interval(60), lastHeartbeat(0), lastVisit(0), forceHeartbeat(false),
     externalStorage(false), autoAllowQueries(true), autoAllowMethods(true),
     maxSubscriptions(64), minSubInterval(3000), subLifetime(300), publicEvents(true),
-    listenOnDirect(true), strictSecurity(false), maxThreadWaitTime(5),
+    listenOnDirect(true), strictSecurity(false),
     schemaUpdateTime(uint64_t(qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now())))
 {
     //
@@ -120,14 +244,7 @@ AgentSessionImpl::AgentSessionImpl(Conne
         iter = optMap.find("strict-security");
         if (iter != optMap.end())
             strictSecurity = iter->second.asBool();
-
-        iter = optMap.find("max-thread-wait-time");
-        if (iter != optMap.end())
-            maxThreadWaitTime = iter->second.asUint32();
     }
-
-    if (maxThreadWaitTime > interval)
-        maxThreadWaitTime = interval;
 }
 
 
@@ -135,11 +252,6 @@ AgentSessionImpl::~AgentSessionImpl()
 {
     if (opened)
         close();
-
-    if (thread) {
-        thread->join();
-        delete thread;
-    }
 }
 
 
@@ -148,12 +260,6 @@ void AgentSessionImpl::open()
     if (opened)
         throw QmfException("The session is already open");
 
-    // If the thread exists, join and delete it before creating a new one.
-    if (thread) {
-        thread->join();
-        delete thread;
-    }
-
     const string addrArgs(";{create:never,node:{type:topic}}");
     const string routableAddr("direct-agent.route." + qpid::types::Uuid(true).str());
     attributes["_direct_subject"] = routableAddr;
@@ -191,26 +297,19 @@ void AgentSessionImpl::open()
 }
 
 
-void AgentSessionImpl::closeAsync()
+void AgentSessionImpl::close()
 {
     if (!opened)
         return;
 
-    // Stop the receiver thread.  Don't join it until the destructor is called or open() is called.
+    // Stop and join the receiver thread
     threadCanceled = true;
-    opened = false;
-}
+    thread->join();
+    delete thread;
 
-
-void AgentSessionImpl::close()
-{
-    closeAsync();
-
-    if (thread) {
-        thread->join();
-        delete thread;
-        thread = 0;
-    }
+    // Close the AMQP session
+    session.close();
+    opened = false;
 }
 
 
@@ -219,19 +318,13 @@ bool AgentSessionImpl::nextEvent(AgentEv
     uint64_t milliseconds = timeout.getMilliseconds();
     qpid::sys::Mutex::ScopedLock l(lock);
 
-    if (eventQueue.empty() && milliseconds > 0) {
-        int64_t nsecs(qpid::sys::TIME_INFINITE);
-        if ((uint64_t)(nsecs / 1000000) > milliseconds)
-            nsecs = (int64_t) milliseconds * 1000000;
-        qpid::sys::Duration then(nsecs);
-        cond.wait(lock, qpid::sys::AbsTime(qpid::sys::now(), then));
-    }
+    if (eventQueue.empty())
+        cond.wait(lock, qpid::sys::AbsTime(qpid::sys::now(),
+                                           qpid::sys::Duration(milliseconds * qpid::sys::TIME_MSEC)));
 
     if (!eventQueue.empty()) {
         event = eventQueue.front();
         eventQueue.pop();
-        if (eventQueue.empty())
-            alertEventNotifierLH(false);
         return true;
     }
 
@@ -239,26 +332,6 @@ bool AgentSessionImpl::nextEvent(AgentEv
 }
 
 
-int AgentSessionImpl::pendingEvents() const
-{
-    qpid::sys::Mutex::ScopedLock l(lock);
-    return eventQueue.size();
-}
-
-
-void AgentSessionImpl::setEventNotifier(EventNotifierImpl* notifier)
-{
-    qpid::sys::Mutex::ScopedLock l(lock);
-    eventNotifier = notifier;
-}
-
-EventNotifierImpl* AgentSessionImpl::getEventNotifier() const
-{
-    qpid::sys::Mutex::ScopedLock l(lock);
-    return eventNotifier;
-}
-
-
 void AgentSessionImpl::registerSchema(Schema& schema)
 {
     if (!schema.isFinalized())
@@ -514,10 +587,8 @@ void AgentSessionImpl::enqueueEvent(cons
     qpid::sys::Mutex::ScopedLock l(lock);
     bool notify = eventQueue.empty();
     eventQueue.push(event);
-    if (notify) {
+    if (notify)
         cond.notify();
-        alertEventNotifierLH(true);
-    }
 }
 
 
@@ -961,13 +1032,6 @@ void AgentSessionImpl::periodicProcessin
 }
 
 
-void AgentSessionImpl::alertEventNotifierLH(bool readable)
-{
-    if (eventNotifier)
-        eventNotifier->setReadable(readable);
-}
-
-
 void AgentSessionImpl::run()
 {
     QPID_LOG(debug, "AgentSession thread started for agent " << agentName);
@@ -977,7 +1041,7 @@ void AgentSessionImpl::run()
             periodicProcessing((uint64_t) qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now()) / qpid::sys::TIME_SEC);
 
             Receiver rx;
-            bool valid = session.nextReceiver(rx, Duration::SECOND * maxThreadWaitTime);
+            bool valid = session.nextReceiver(rx, Duration::SECOND);
             if (threadCanceled)
                 break;
             if (valid) {
@@ -994,19 +1058,6 @@ void AgentSessionImpl::run()
         enqueueEvent(AgentEvent(new AgentEventImpl(AGENT_THREAD_FAILED)));
     }
 
-    session.close();
     QPID_LOG(debug, "AgentSession thread exiting for agent " << agentName);
 }
 
-
-AgentSessionImpl& AgentSessionImplAccess::get(AgentSession& session)
-{
-    return *session.impl;
-}
-
-
-const AgentSessionImpl& AgentSessionImplAccess::get(const AgentSession& session)
-{
-    return *session.impl;
-}
-



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org