diff options
Diffstat (limited to 'qpid/cpp/include/qpid')
62 files changed, 323 insertions, 423 deletions
diff --git a/qpid/cpp/include/qpid/Address.h b/qpid/cpp/include/qpid/Address.h index f5b19d0532..57c9139f87 100755 --- a/qpid/cpp/include/qpid/Address.h +++ b/qpid/cpp/include/qpid/Address.h @@ -36,7 +36,7 @@ public: static const std::string TCP; // Default TCP protocol tag. static const uint16_t AMQP_PORT=5672; // Default AMQP port. - QPID_COMMON_INLINE_EXTERN explicit Address( + QPID_COMMON_EXTERN explicit Address( const std::string& protocol_=std::string(), const std::string& host_=std::string(), uint16_t port_=0 diff --git a/qpid/cpp/include/qpid/CommonImportExport.h b/qpid/cpp/include/qpid/CommonImportExport.h index dd2b900b73..02c06ed7af 100644 --- a/qpid/cpp/include/qpid/CommonImportExport.h +++ b/qpid/cpp/include/qpid/CommonImportExport.h @@ -20,16 +20,14 @@ * under the License. */ -#include "qpid/ImportExport.h" - +#if defined(WIN32) && !defined(QPID_DECLARE_STATIC) #if defined(COMMON_EXPORT) || defined (qpidcommon_EXPORTS) -# define QPID_COMMON_EXTERN QPID_EXPORT -# define QPID_COMMON_CLASS_EXTERN QPID_CLASS_EXPORT -# define QPID_COMMON_INLINE_EXTERN QPID_INLINE_EXPORT +#define QPID_COMMON_EXTERN __declspec(dllexport) +#else +#define QPID_COMMON_EXTERN __declspec(dllimport) +#endif #else -# define QPID_COMMON_EXTERN QPID_IMPORT -# define QPID_COMMON_CLASS_EXTERN QPID_CLASS_IMPORT -# define QPID_COMMON_INLINE_EXTERN QPID_INLINE_IMPORT +#define QPID_COMMON_EXTERN #endif #endif diff --git a/qpid/cpp/include/qpid/Exception.h b/qpid/cpp/include/qpid/Exception.h index cbd175214d..fa7111160c 100644 --- a/qpid/cpp/include/qpid/Exception.h +++ b/qpid/cpp/include/qpid/Exception.h @@ -36,7 +36,7 @@ namespace qpid /** * Base class for Qpid runtime exceptions. */ -class QPID_COMMON_CLASS_EXTERN Exception : public std::exception +class Exception : public std::exception { public: QPID_COMMON_EXTERN explicit Exception(const std::string& message=std::string()) throw(); @@ -51,30 +51,30 @@ class QPID_COMMON_CLASS_EXTERN Exception : public std::exception }; /** Exception that includes an errno message. */ -struct QPID_COMMON_CLASS_EXTERN ErrnoException : public Exception { +struct ErrnoException : public Exception { ErrnoException(const std::string& msg, int err) : Exception(msg+": "+qpid::sys::strError(err)) {} ErrnoException(const std::string& msg) : Exception(msg+": "+qpid::sys::strError(errno)) {} }; -struct QPID_COMMON_CLASS_EXTERN SessionException : public Exception { +struct SessionException : public Exception { const framing::execution::ErrorCode code; SessionException(framing::execution::ErrorCode code_, const std::string& message) : Exception(message), code(code_) {} }; -struct QPID_COMMON_CLASS_EXTERN ChannelException : public Exception { +struct ChannelException : public Exception { const framing::session::DetachCode code; ChannelException(framing::session::DetachCode _code, const std::string& message) : Exception(message), code(_code) {} }; -struct QPID_COMMON_CLASS_EXTERN ConnectionException : public Exception { +struct ConnectionException : public Exception { const framing::connection::CloseCode code; ConnectionException(framing::connection::CloseCode _code, const std::string& message) : Exception(message), code(_code) {} }; -struct QPID_COMMON_CLASS_EXTERN ClosedException : public Exception { +struct ClosedException : public Exception { QPID_COMMON_EXTERN ClosedException(const std::string& msg=std::string()); QPID_COMMON_EXTERN std::string getPrefix() const; }; diff --git a/qpid/cpp/include/qpid/ImportExport.h b/qpid/cpp/include/qpid/ImportExport.h deleted file mode 100644 index e62399faf7..0000000000 --- a/qpid/cpp/include/qpid/ImportExport.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef QPID_IMPORTEXPORT_H -#define QPID_IMPORTEXPORT_H - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * 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 - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -// -// This header file defines the following macros for the control of library/DLL -// import and export: -// -// QPID_EXPORT - Export declaration for Methods -// QPID_CLASS_EXPORT - Export declaration for Classes -// QPID_INLINE_EXPORT - Export declaration for Inline methods -// -// QPID_IMPORT - Import declaration for Methods -// QPID_CLASS_IMPORT - Import declaration for Classes -// QPID_INLINE_IMPORT - Import declaration for Inline methods -// - -#if defined(WIN32) && !defined(QPID_DECLARE_STATIC) - // - // Import and Export definitions for Windows: - // -# define QPID_EXPORT __declspec(dllexport) -# define QPID_IMPORT __declspec(dllimport) -# ifdef _MSC_VER - // - // Specific to the Microsoft compiler: - // -# define QPID_CLASS_EXPORT -# define QPID_CLASS_IMPORT -# define QPID_INLINE_EXPORT QPID_EXPORT -# define QPID_INLINE_IMPORT QPID_IMPORT -# else - // - // Specific to non-Microsoft compilers (mingw32): - // -# define QPID_CLASS_EXPORT QPID_EXPORT -# define QPID_CLASS_IMPORT QPID_IMPORT -# define QPID_INLINE_EXPORT -# define QPID_INLINE_IMPORT -# endif -#else - // - // Non-Windows (Linux, etc.) definitions: - // -# define QPID_EXPORT -# define QPID_IMPORT -# define QPID_CLASS_EXPORT -# define QPID_CLASS_IMPORT -# define QPID_INLINE_EXPORT -# define QPID_INLINE_IMPORT -#endif - -#endif /*!QPID_IMPORTEXPORT_H*/ diff --git a/qpid/cpp/include/qpid/Options.h b/qpid/cpp/include/qpid/Options.h index 63d91c2d72..078a6b4d95 100644 --- a/qpid/cpp/include/qpid/Options.h +++ b/qpid/cpp/include/qpid/Options.h @@ -133,6 +133,77 @@ inline po::value_semantic* optValue(bool& value) { return po::bool_switch(&value +/* + * --------------------------------------------- + * Explanation for Boost 103200 conditional code + * --------------------------------------------- + * + * This boost version has an implementation of the program_options library + * that has no provision for allowing unregistered options to pass by. + * + * But that means that, if you have a program that loads optional modules + * after start-up, and those modules each have their own set of options, + * then if you parse the command line too soon, you will get spurious + * reports of unrecognized options -- and the program will exit! + * + * And we must process the command-line before module-loading, because we + * need to look at the "bootstrap" options. + * + * This conditional code: + * + * 1. implements it's own functor class, derived from the Boost + * "options_description_easy_init" class. This functor is used + * to process added options and do the functor chaining, so that + * I can snoop on the arguments before doing an explicit call + * to its parent. + * + * 2. It implements two static vectors, one to hold long names, and + * one for short names, so that options declared by modules are + * not forgotten when their options_description goes out of scope. + * + * I will be thrilled to personally delete this code if we ever decide + * that qpid doesn't really need to support this antique version of Boost. + * + */ + +#if ( BOOST_VERSION == 103200 ) +struct Options; + + +struct +options_description_less_easy_init + : public po::options_description_easy_init +{ + options_description_less_easy_init ( Options * my_owner, + po::options_description * my_parents_owner + ) + : po::options_description_easy_init(my_parents_owner) + { + owner = my_owner; + } + + + options_description_less_easy_init& + operator()(char const * name, + char const * description); + + + options_description_less_easy_init& + operator()(char const * name, + const po::value_semantic* s); + + + options_description_less_easy_init& + operator()(const char* name, + const po::value_semantic* s, + const char* description); + + + Options * owner; +}; +#endif + + struct Options : public po::options_description { struct Exception : public qpid::Exception { @@ -151,9 +222,26 @@ struct Options : public po::options_description { bool allowUnknown = false); + #if ( BOOST_VERSION == 103200 ) + options_description_less_easy_init m_less_easy; + + options_description_less_easy_init addOptions() { + return m_less_easy; + } + + bool + is_registered_option ( std::string s ); + + void + register_names ( std::string s ); + + static std::vector<std::string> long_names; + static std::vector<std::string> short_names; + #else boost::program_options::options_description_easy_init addOptions() { return add_options(); } + #endif }; diff --git a/qpid/cpp/include/qpid/Url.h b/qpid/cpp/include/qpid/Url.h index 915b08ac5f..353e9d5599 100644 --- a/qpid/cpp/include/qpid/Url.h +++ b/qpid/cpp/include/qpid/Url.h @@ -66,7 +66,7 @@ struct Url : public std::vector<Address> { *@exception Invalid if the url is invalid. */ QPID_COMMON_EXTERN void parse(const char* url); - QPID_COMMON_INLINE_EXTERN void parse(const std::string& url) { parse(url.c_str()); } + QPID_COMMON_EXTERN void parse(const std::string& url) { parse(url.c_str()); } /** Replace contesnts with parsed URL. Replace with empty URL if invalid. */ QPID_COMMON_EXTERN void parseNoThrow(const char* url); diff --git a/qpid/cpp/include/qpid/agent/ManagementAgent.h b/qpid/cpp/include/qpid/agent/ManagementAgent.h index 10bc6527a9..e2451244c1 100644 --- a/qpid/cpp/include/qpid/agent/ManagementAgent.h +++ b/qpid/cpp/include/qpid/agent/ManagementAgent.h @@ -110,8 +110,8 @@ class ManagementAgent uint16_t intervalSeconds = 10, bool useExternalThread = false, const std::string& storeFile = "", - const std::string& uid = "", - const std::string& pwd = "", + const std::string& uid = "guest", + const std::string& pwd = "guest", const std::string& mech = "PLAIN", const std::string& proto = "tcp") = 0; diff --git a/qpid/cpp/include/qpid/agent/QmfAgentImportExport.h b/qpid/cpp/include/qpid/agent/QmfAgentImportExport.h index 3f923ac4b2..e41425a7ba 100644 --- a/qpid/cpp/include/qpid/agent/QmfAgentImportExport.h +++ b/qpid/cpp/include/qpid/agent/QmfAgentImportExport.h @@ -20,16 +20,14 @@ * under the License. */ -#include "qpid/ImportExport.h" - -#if defined(QMF_EXPORT) || defined (qmf_EXPORTS) -# define QMF_AGENT_EXTERN QPID_EXPORT -# define QMF_AGENT_CLASS_EXTERN QPID_CLASS_EXPORT -# define QMF_AGENT_INLINE_EXTERN QPID_INLINE_EXPORT +#if defined(WIN32) && !defined(QPID_DECLARE_STATIC) +#if defined (qmf_EXPORTS) +#define QMF_AGENT_EXTERN __declspec(dllexport) +#else +#define QMF_AGENT_EXTERN __declspec(dllimport) +#endif #else -# define QMF_AGENT_EXTERN QPID_IMPORT -# define QMF_AGENT_CLASS_EXTERN QPID_CLASS_IMPORT -# define QMF_AGENT_INLINE_EXTERN QPID_INLINE_IMPORT +#define QMF_AGENT_EXTERN #endif #endif diff --git a/qpid/cpp/include/qpid/client/ClientImportExport.h b/qpid/cpp/include/qpid/client/ClientImportExport.h index 2a3a5a52e9..42b02e33c3 100644 --- a/qpid/cpp/include/qpid/client/ClientImportExport.h +++ b/qpid/cpp/include/qpid/client/ClientImportExport.h @@ -20,16 +20,14 @@ * under the License. */ -#include "qpid/ImportExport.h" - +#if defined(WIN32) && !defined(QPID_DECLARE_STATIC) #if defined(CLIENT_EXPORT) || defined (qpidclient_EXPORTS) -# define QPID_CLIENT_EXTERN QPID_EXPORT -# define QPID_CLIENT_CLASS_EXTERN QPID_CLASS_EXPORT -# define QPID_CLIENT_INLINE_EXTERN QPID_INLINE_EXPORT +#define QPID_CLIENT_EXTERN __declspec(dllexport) +#else +#define QPID_CLIENT_EXTERN __declspec(dllimport) +#endif #else -# define QPID_CLIENT_EXTERN QPID_IMPORT -# define QPID_CLIENT_CLASS_EXTERN QPID_CLASS_IMPORT -# define QPID_CLIENT_INLINE_EXTERN QPID_INLINE_IMPORT +#define QPID_CLIENT_EXTERN #endif #endif diff --git a/qpid/cpp/include/qpid/client/Completion.h b/qpid/cpp/include/qpid/client/Completion.h index 9546db9258..99d940f031 100644 --- a/qpid/cpp/include/qpid/client/Completion.h +++ b/qpid/cpp/include/qpid/client/Completion.h @@ -41,7 +41,7 @@ template <class T> class PrivateImplRef; * *\ingroup clientapi */ -class QPID_CLIENT_CLASS_EXTERN Completion : public Handle<CompletionImpl> +class Completion : public Handle<CompletionImpl> { public: QPID_CLIENT_EXTERN Completion(CompletionImpl* = 0); diff --git a/qpid/cpp/include/qpid/client/Connection.h b/qpid/cpp/include/qpid/client/Connection.h index c0db0f301d..6ed0d98bc0 100644 --- a/qpid/cpp/include/qpid/client/Connection.h +++ b/qpid/cpp/include/qpid/client/Connection.h @@ -60,7 +60,7 @@ class ConnectionImpl; * */ -class QPID_CLIENT_CLASS_EXTERN Connection +class Connection { framing::ProtocolVersion version; @@ -102,8 +102,8 @@ class QPID_CLIENT_CLASS_EXTERN Connection * within a single broker). */ QPID_CLIENT_EXTERN void open(const std::string& host, int port = 5672, - const std::string& uid = "", - const std::string& pwd = "", + const std::string& uid = "guest", + const std::string& pwd = "guest", const std::string& virtualhost = "/", uint16_t maxFrameSize=65535); /** @@ -124,8 +124,8 @@ class QPID_CLIENT_CLASS_EXTERN Connection * within a single broker). */ QPID_CLIENT_EXTERN void open(const Url& url, - const std::string& uid = "", - const std::string& pwd = "", + const std::string& uid = "guest", + const std::string& pwd = "guest", const std::string& virtualhost = "/", uint16_t maxFrameSize=65535); /** diff --git a/qpid/cpp/include/qpid/client/ConnectionSettings.h b/qpid/cpp/include/qpid/client/ConnectionSettings.h index 2b6b86f891..1c2ee28b1b 100644 --- a/qpid/cpp/include/qpid/client/ConnectionSettings.h +++ b/qpid/cpp/include/qpid/client/ConnectionSettings.h @@ -37,7 +37,7 @@ namespace client { /** * Settings for a Connection. */ -struct QPID_CLIENT_CLASS_EXTERN ConnectionSettings { +struct ConnectionSettings { QPID_CLIENT_EXTERN ConnectionSettings(); QPID_CLIENT_EXTERN virtual ~ConnectionSettings(); diff --git a/qpid/cpp/include/qpid/client/FailoverListener.h b/qpid/cpp/include/qpid/client/FailoverListener.h index 53c7c26211..59108eb7cb 100644 --- a/qpid/cpp/include/qpid/client/FailoverListener.h +++ b/qpid/cpp/include/qpid/client/FailoverListener.h @@ -48,7 +48,7 @@ namespace client { * FailoverListener::decode to extract a list of broker URLs from a * failover exchange message. */ -class QPID_CLIENT_CLASS_EXTERN FailoverListener : private MessageListener, private qpid::sys::Runnable +class FailoverListener : private MessageListener, private qpid::sys::Runnable { public: /** The name of the standard failover exchange amq.failover */ diff --git a/qpid/cpp/include/qpid/client/FailoverManager.h b/qpid/cpp/include/qpid/client/FailoverManager.h index d3a0dbc976..0d30e2ed60 100644 --- a/qpid/cpp/include/qpid/client/FailoverManager.h +++ b/qpid/cpp/include/qpid/client/FailoverManager.h @@ -42,7 +42,7 @@ struct CannotConnectException : qpid::Exception /** * Utility to manage failover. */ -class QPID_CLIENT_CLASS_EXTERN FailoverManager +class FailoverManager { public: /** diff --git a/qpid/cpp/include/qpid/client/Future.h b/qpid/cpp/include/qpid/client/Future.h index 630a7e03c0..09088e68f6 100644 --- a/qpid/cpp/include/qpid/client/Future.h +++ b/qpid/cpp/include/qpid/client/Future.h @@ -34,7 +34,7 @@ namespace qpid { namespace client { /**@internal */ -class QPID_CLIENT_CLASS_EXTERN Future +class Future { framing::SequenceNumber command; boost::shared_ptr<FutureResult> result; diff --git a/qpid/cpp/include/qpid/client/FutureResult.h b/qpid/cpp/include/qpid/client/FutureResult.h index ead4929571..b2b663daa1 100644 --- a/qpid/cpp/include/qpid/client/FutureResult.h +++ b/qpid/cpp/include/qpid/client/FutureResult.h @@ -34,7 +34,7 @@ namespace client { class SessionImpl; ///@internal -class QPID_CLIENT_CLASS_EXTERN FutureResult : public FutureCompletion +class FutureResult : public FutureCompletion { std::string result; public: diff --git a/qpid/cpp/include/qpid/client/Handle.h b/qpid/cpp/include/qpid/client/Handle.h index b8315481a9..088e836fcf 100644 --- a/qpid/cpp/include/qpid/client/Handle.h +++ b/qpid/cpp/include/qpid/client/Handle.h @@ -40,22 +40,22 @@ template <class T> class Handle { public: /**@return true if handle is valid, i.e. not null. */ - QPID_CLIENT_INLINE_EXTERN bool isValid() const { return impl; } + QPID_CLIENT_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_CLIENT_INLINE_EXTERN bool isNull() const { return !impl; } + QPID_CLIENT_EXTERN bool isNull() const { return !impl; } /** Conversion to bool supports idiom if (handle) { handle->... } */ - QPID_CLIENT_INLINE_EXTERN operator bool() const { return impl; } + QPID_CLIENT_EXTERN operator bool() const { return impl; } /** Operator ! supports idiom if (!handle) { do_if_handle_is_null(); } */ - QPID_CLIENT_INLINE_EXTERN bool operator !() const { return !impl; } + QPID_CLIENT_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_CLIENT_INLINE_EXTERN Handle() :impl() {} + QPID_CLIENT_EXTERN Handle() :impl() {} // Not implemented,subclasses must implement. QPID_CLIENT_EXTERN Handle(const Handle&); diff --git a/qpid/cpp/include/qpid/client/LocalQueue.h b/qpid/cpp/include/qpid/client/LocalQueue.h index 1a19a8499d..70e4cebcf1 100644 --- a/qpid/cpp/include/qpid/client/LocalQueue.h +++ b/qpid/cpp/include/qpid/client/LocalQueue.h @@ -71,7 +71,7 @@ template <class T> class PrivateImplRef; * </ul> */ -class QPID_CLIENT_CLASS_EXTERN LocalQueue : public Handle<LocalQueueImpl> { +class LocalQueue : public Handle<LocalQueueImpl> { public: /** Create a local queue. Subscribe the local queue to a remote broker * queue with a SubscriptionManager. diff --git a/qpid/cpp/include/qpid/client/Message.h b/qpid/cpp/include/qpid/client/Message.h index ba50dda9ba..2401cbdc92 100644 --- a/qpid/cpp/include/qpid/client/Message.h +++ b/qpid/cpp/include/qpid/client/Message.h @@ -112,7 +112,7 @@ class MessageImpl; * * */ -class QPID_CLIENT_CLASS_EXTERN Message +class Message { public: /** Create a Message. diff --git a/qpid/cpp/include/qpid/client/MessageListener.h b/qpid/cpp/include/qpid/client/MessageListener.h index 3ca2fa964a..d200f8cf21 100644 --- a/qpid/cpp/include/qpid/client/MessageListener.h +++ b/qpid/cpp/include/qpid/client/MessageListener.h @@ -84,7 +84,7 @@ namespace client { * */ - class QPID_CLIENT_CLASS_EXTERN MessageListener{ + class MessageListener{ public: QPID_CLIENT_EXTERN virtual ~MessageListener(); diff --git a/qpid/cpp/include/qpid/client/MessageReplayTracker.h b/qpid/cpp/include/qpid/client/MessageReplayTracker.h index 06a3f29c7d..6f5a0f4ac3 100644 --- a/qpid/cpp/include/qpid/client/MessageReplayTracker.h +++ b/qpid/cpp/include/qpid/client/MessageReplayTracker.h @@ -34,7 +34,7 @@ namespace client { * Utility to track messages sent asynchronously, allowing those that * are indoubt to be replayed over a new session. */ -class QPID_CLIENT_CLASS_EXTERN MessageReplayTracker +class MessageReplayTracker { public: QPID_CLIENT_EXTERN MessageReplayTracker(uint flushInterval); diff --git a/qpid/cpp/include/qpid/client/QueueOptions.h b/qpid/cpp/include/qpid/client/QueueOptions.h index 3984b63fdd..f8a4963f06 100644 --- a/qpid/cpp/include/qpid/client/QueueOptions.h +++ b/qpid/cpp/include/qpid/client/QueueOptions.h @@ -35,7 +35,7 @@ enum QueueOrderingPolicy {FIFO, LVQ, LVQ_NO_BROWSE}; * A help class to set options on the Queue. Create a configured args while * still allowing any custom configuration via the FieldTable base class */ -class QPID_CLIENT_CLASS_EXTERN QueueOptions: public framing::FieldTable +class QueueOptions: public framing::FieldTable { public: QPID_CLIENT_EXTERN QueueOptions(); diff --git a/qpid/cpp/include/qpid/client/SessionBase_0_10.h b/qpid/cpp/include/qpid/client/SessionBase_0_10.h index ea50ab32f7..3b5c84e74b 100644 --- a/qpid/cpp/include/qpid/client/SessionBase_0_10.h +++ b/qpid/cpp/include/qpid/client/SessionBase_0_10.h @@ -54,7 +54,7 @@ enum CreditUnit { MESSAGE_CREDIT=0, BYTE_CREDIT=1, UNLIMITED_CREDIT=0xFFFFFFFF } * Subclasses provide the AMQP commands for a given * version of the protocol. */ -class QPID_CLIENT_CLASS_EXTERN SessionBase_0_10 { +class SessionBase_0_10 { public: ///@internal diff --git a/qpid/cpp/include/qpid/client/Subscription.h b/qpid/cpp/include/qpid/client/Subscription.h index bb9b98e8ff..425b6b92e2 100644 --- a/qpid/cpp/include/qpid/client/Subscription.h +++ b/qpid/cpp/include/qpid/client/Subscription.h @@ -39,7 +39,7 @@ class SubscriptionManager; * A handle to an active subscription. Provides methods to query the subscription status * and control acknowledgement (acquire and accept) of messages. */ -class QPID_CLIENT_CLASS_EXTERN Subscription : public Handle<SubscriptionImpl> { +class Subscription : public Handle<SubscriptionImpl> { public: QPID_CLIENT_EXTERN Subscription(SubscriptionImpl* = 0); QPID_CLIENT_EXTERN Subscription(const Subscription&); @@ -91,13 +91,13 @@ class QPID_CLIENT_CLASS_EXTERN Subscription : public Handle<SubscriptionImpl> { QPID_CLIENT_EXTERN void release(const SequenceSet& messageIds); /* Acquire a single message */ - QPID_CLIENT_INLINE_EXTERN void acquire(const Message& m) { acquire(SequenceSet(m.getId())); } + QPID_CLIENT_EXTERN void acquire(const Message& m) { acquire(SequenceSet(m.getId())); } /* Accept a single message */ - QPID_CLIENT_INLINE_EXTERN void accept(const Message& m) { accept(SequenceSet(m.getId())); } + QPID_CLIENT_EXTERN void accept(const Message& m) { accept(SequenceSet(m.getId())); } /* Release a single message */ - QPID_CLIENT_INLINE_EXTERN void release(const Message& m) { release(SequenceSet(m.getId())); } + QPID_CLIENT_EXTERN void release(const Message& m) { release(SequenceSet(m.getId())); } /** Get the session associated with this subscription */ QPID_CLIENT_EXTERN Session getSession() const; diff --git a/qpid/cpp/include/qpid/client/SubscriptionManager.h b/qpid/cpp/include/qpid/client/SubscriptionManager.h index b69819a8ff..e70e05f73a 100644 --- a/qpid/cpp/include/qpid/client/SubscriptionManager.h +++ b/qpid/cpp/include/qpid/client/SubscriptionManager.h @@ -94,7 +94,7 @@ class SubscriptionManagerImpl; * </ul> * */ -class QPID_CLIENT_CLASS_EXTERN SubscriptionManager : public sys::Runnable, public Handle<SubscriptionManagerImpl> +class SubscriptionManager : public sys::Runnable, public Handle<SubscriptionManagerImpl> { public: /** Create a new SubscriptionManager associated with a session */ diff --git a/qpid/cpp/include/qpid/console/Agent.h b/qpid/cpp/include/qpid/console/Agent.h index 629dd71dee..97d75da250 100644 --- a/qpid/cpp/include/qpid/console/Agent.h +++ b/qpid/cpp/include/qpid/console/Agent.h @@ -31,17 +31,17 @@ namespace console { * * \ingroup qmfconsoleapi */ - class QPID_CONSOLE_CLASS_EXTERN Agent { + class QPID_CONSOLE_EXTERN Agent { public: typedef std::vector<Agent*> Vector; - QPID_CONSOLE_INLINE_EXTERN Agent(Broker* _broker, uint32_t _bank, const std::string& _label) : + Agent(Broker* _broker, uint32_t _bank, const std::string& _label) : broker(_broker), brokerBank(broker->getBrokerBank()), agentBank(_bank), label(_label) {} - QPID_CONSOLE_INLINE_EXTERN Broker* getBroker() const { return broker; } - QPID_CONSOLE_INLINE_EXTERN uint32_t getBrokerBank() const { return brokerBank; } - QPID_CONSOLE_INLINE_EXTERN uint32_t getAgentBank() const { return agentBank; } - QPID_CONSOLE_INLINE_EXTERN const std::string& getLabel() const { return label; } + Broker* getBroker() const { return broker; } + uint32_t getBrokerBank() const { return brokerBank; } + uint32_t getAgentBank() const { return agentBank; } + const std::string& getLabel() const { return label; } private: Broker* broker; @@ -50,7 +50,7 @@ namespace console { const std::string label; }; - std::ostream& operator<<(std::ostream& o, const Agent& agent); + QPID_CONSOLE_EXTERN std::ostream& operator<<(std::ostream& o, const Agent& agent); } } diff --git a/qpid/cpp/include/qpid/console/Broker.h b/qpid/cpp/include/qpid/console/Broker.h index c2ba8ac81f..0b2d1bcb61 100644 --- a/qpid/cpp/include/qpid/console/Broker.h +++ b/qpid/cpp/include/qpid/console/Broker.h @@ -55,12 +55,12 @@ namespace console { client::ConnectionSettings& settings); QPID_CONSOLE_EXTERN ~Broker(); - QPID_CONSOLE_INLINE_EXTERN bool isConnected() const { return connected; } - QPID_CONSOLE_INLINE_EXTERN const std::string& getError() const { return error; } - QPID_CONSOLE_INLINE_EXTERN const std::string& getSessionId() const { return amqpSessionId; } - QPID_CONSOLE_INLINE_EXTERN const framing::Uuid& getBrokerId() const { return brokerId; } - QPID_CONSOLE_INLINE_EXTERN uint32_t getBrokerBank() const { return 1; } - QPID_CONSOLE_INLINE_EXTERN void addBinding(const std::string& key) { + QPID_CONSOLE_EXTERN bool isConnected() const { return connected; } + QPID_CONSOLE_EXTERN const std::string& getError() const { return error; } + QPID_CONSOLE_EXTERN const std::string& getSessionId() const { return amqpSessionId; } + QPID_CONSOLE_EXTERN const framing::Uuid& getBrokerId() const { return brokerId; } + QPID_CONSOLE_EXTERN uint32_t getBrokerBank() const { return 1; } + QPID_CONSOLE_EXTERN void addBinding(const std::string& key) { connThreadBody.bindExchange("qpid.management", key); } QPID_CONSOLE_EXTERN std::string getUrl() const; @@ -123,10 +123,10 @@ namespace console { void setBrokerId(const framing::Uuid& id) { brokerId = id; } void appendAgents(std::vector<Agent*>& agents) const; - friend std::ostream& operator<<(std::ostream& o, const Broker& k); + friend QPID_CONSOLE_EXTERN std::ostream& operator<<(std::ostream& o, const Broker& k); }; - std::ostream& operator<<(std::ostream& o, const Broker& k); + QPID_CONSOLE_EXTERN std::ostream& operator<<(std::ostream& o, const Broker& k); } } diff --git a/qpid/cpp/include/qpid/console/ConsoleImportExport.h b/qpid/cpp/include/qpid/console/ConsoleImportExport.h index aac30858f7..c2d7cb3a14 100644 --- a/qpid/cpp/include/qpid/console/ConsoleImportExport.h +++ b/qpid/cpp/include/qpid/console/ConsoleImportExport.h @@ -20,16 +20,14 @@ * under the License. */ -#include "qpid/ImportExport.h" - +#if defined(WIN32) && !defined(QPID_DECLARE_STATIC) #if defined(CONSOLE_EXPORT) || defined (qmfconsole_EXPORTS) -# define QPID_CONSOLE_EXTERN QPID_EXPORT -# define QPID_CONSOLE_CLASS_EXTERN QPID_CLASS_EXPORT -# define QPID_CONSOLE_INLINE_EXTERN QPID_INLINE_EXPORT +#define QPID_CONSOLE_EXTERN __declspec(dllexport) +#else +#define QPID_CONSOLE_EXTERN __declspec(dllimport) +#endif #else -# define QPID_CONSOLE_EXTERN QPID_IMPORT -# define QPID_CONSOLE_CLASS_EXTERN QPID_CLASS_IMPORT -# define QPID_CONSOLE_INLINE_EXTERN QPID_INLINE_IMPORT +#define QPID_CONSOLE_EXTERN #endif #endif diff --git a/qpid/cpp/include/qpid/framing/Array.h b/qpid/cpp/include/qpid/framing/Array.h index 1e97be3bb4..d3bdd36aa6 100644 --- a/qpid/cpp/include/qpid/framing/Array.h +++ b/qpid/cpp/include/qpid/framing/Array.h @@ -34,7 +34,7 @@ namespace framing { class Buffer; -class QPID_COMMON_CLASS_EXTERN Array +class Array { public: typedef boost::shared_ptr<FieldValue> ValuePtr; @@ -55,25 +55,25 @@ class QPID_COMMON_CLASS_EXTERN Array //creates a longstr array QPID_COMMON_EXTERN Array(const std::vector<std::string>& in); - QPID_COMMON_INLINE_EXTERN TypeCode getType() const { return type; } + QPID_COMMON_EXTERN TypeCode getType() const { return type; } // std collection interface. - QPID_COMMON_INLINE_EXTERN const_iterator begin() const { return values.begin(); } - QPID_COMMON_INLINE_EXTERN const_iterator end() const { return values.end(); } - QPID_COMMON_INLINE_EXTERN iterator begin() { return values.begin(); } - QPID_COMMON_INLINE_EXTERN iterator end(){ return values.end(); } + QPID_COMMON_EXTERN const_iterator begin() const { return values.begin(); } + QPID_COMMON_EXTERN const_iterator end() const { return values.end(); } + QPID_COMMON_EXTERN iterator begin() { return values.begin(); } + QPID_COMMON_EXTERN iterator end(){ return values.end(); } - QPID_COMMON_INLINE_EXTERN ValuePtr front() const { return values.front(); } - QPID_COMMON_INLINE_EXTERN ValuePtr back() const { return values.back(); } - QPID_COMMON_INLINE_EXTERN size_t size() const { return values.size(); } + QPID_COMMON_EXTERN ValuePtr front() const { return values.front(); } + QPID_COMMON_EXTERN ValuePtr back() const { return values.back(); } + QPID_COMMON_EXTERN size_t size() const { return values.size(); } QPID_COMMON_EXTERN void insert(iterator i, ValuePtr value); - QPID_COMMON_INLINE_EXTERN void erase(iterator i) { values.erase(i); } - QPID_COMMON_INLINE_EXTERN void push_back(ValuePtr value) { values.insert(end(), value); } - QPID_COMMON_INLINE_EXTERN void pop_back() { values.pop_back(); } + QPID_COMMON_EXTERN void erase(iterator i) { values.erase(i); } + QPID_COMMON_EXTERN void push_back(ValuePtr value) { values.insert(end(), value); } + QPID_COMMON_EXTERN void pop_back() { values.pop_back(); } // Non-std interface - QPID_COMMON_INLINE_EXTERN void add(ValuePtr value) { push_back(value); } + QPID_COMMON_EXTERN void add(ValuePtr value) { push_back(value); } template <class T> void collect(std::vector<T>& out) const diff --git a/qpid/cpp/include/qpid/framing/Buffer.h b/qpid/cpp/include/qpid/framing/Buffer.h index 8b08e60762..04583433c5 100644 --- a/qpid/cpp/include/qpid/framing/Buffer.h +++ b/qpid/cpp/include/qpid/framing/Buffer.h @@ -29,14 +29,14 @@ namespace qpid { namespace framing { -struct QPID_COMMON_CLASS_EXTERN OutOfBounds : qpid::Exception { +struct OutOfBounds : qpid::Exception { OutOfBounds() : qpid::Exception(std::string("Out of Bounds")) {} }; class Content; class FieldTable; -class QPID_COMMON_CLASS_EXTERN Buffer +class Buffer { uint32_t size; char* data; @@ -72,12 +72,12 @@ class QPID_COMMON_CLASS_EXTERN Buffer QPID_COMMON_EXTERN void restore(bool reRecord = false); QPID_COMMON_EXTERN void reset(); - QPID_COMMON_INLINE_EXTERN uint32_t available() { return size - position; } - QPID_COMMON_INLINE_EXTERN uint32_t getSize() { return size; } - QPID_COMMON_INLINE_EXTERN uint32_t getPosition() { return position; } - QPID_COMMON_INLINE_EXTERN void setPosition(uint32_t p) { position = p; } - QPID_COMMON_INLINE_EXTERN Iterator getIterator() { return Iterator(*this); } - QPID_COMMON_INLINE_EXTERN char* getPointer() { return data; } + QPID_COMMON_EXTERN uint32_t available() { return size - position; } + QPID_COMMON_EXTERN uint32_t getSize() { return size; } + QPID_COMMON_EXTERN uint32_t getPosition() { return position; } + QPID_COMMON_EXTERN void setPosition(uint32_t p) { position = p; } + QPID_COMMON_EXTERN Iterator getIterator() { return Iterator(*this); } + QPID_COMMON_EXTERN char* getPointer() { return data; } QPID_COMMON_EXTERN void putOctet(uint8_t i); QPID_COMMON_EXTERN void putShort(uint16_t i); diff --git a/qpid/cpp/include/qpid/framing/FieldTable.h b/qpid/cpp/include/qpid/framing/FieldTable.h index bdcef6d7fd..fdb1a28b9d 100644 --- a/qpid/cpp/include/qpid/framing/FieldTable.h +++ b/qpid/cpp/include/qpid/framing/FieldTable.h @@ -56,7 +56,7 @@ class FieldTable typedef ValueMap::reference reference; typedef ValueMap::value_type value_type; - QPID_COMMON_INLINE_EXTERN FieldTable() {}; + QPID_COMMON_EXTERN FieldTable() {}; QPID_COMMON_EXTERN FieldTable(const FieldTable& ft); QPID_COMMON_EXTERN ~FieldTable(); QPID_COMMON_EXTERN FieldTable& operator=(const FieldTable& ft); @@ -65,11 +65,9 @@ class FieldTable QPID_COMMON_EXTERN void decode(Buffer& buffer); QPID_COMMON_EXTERN int count() const; - QPID_COMMON_INLINE_EXTERN size_t size() const { return values.size(); } - QPID_COMMON_INLINE_EXTERN bool empty() { return size() == 0; } QPID_COMMON_EXTERN void set(const std::string& name, const ValuePtr& value); QPID_COMMON_EXTERN ValuePtr get(const std::string& name) const; - QPID_COMMON_INLINE_EXTERN bool isSet(const std::string& name) const { return get(name).get() != 0; } + QPID_COMMON_EXTERN bool isSet(const std::string& name) const { return get(name).get() != 0; } QPID_COMMON_EXTERN void setString(const std::string& name, const std::string& value); QPID_COMMON_EXTERN void setInt(const std::string& name, const int value); diff --git a/qpid/cpp/include/qpid/framing/FieldValue.h b/qpid/cpp/include/qpid/framing/FieldValue.h index 458de62fdf..19220e74d5 100644 --- a/qpid/cpp/include/qpid/framing/FieldValue.h +++ b/qpid/cpp/include/qpid/framing/FieldValue.h @@ -41,14 +41,14 @@ namespace framing { * * \ingroup clientapi */ -class QPID_COMMON_CLASS_EXTERN FieldValueException : public qpid::Exception {}; +class FieldValueException : public qpid::Exception {}; /** * Exception thrown when we can't perform requested conversion * * \ingroup clientapi */ -struct QPID_COMMON_CLASS_EXTERN InvalidConversionException : public FieldValueException { +struct InvalidConversionException : public FieldValueException { InvalidConversionException() {} }; @@ -59,7 +59,7 @@ class List; * * \ingroup clientapi */ -class QPID_COMMON_CLASS_EXTERN FieldValue { +class FieldValue { public: /* * Abstract type for content of different types @@ -90,7 +90,7 @@ class QPID_COMMON_CLASS_EXTERN FieldValue { void encode(Buffer& buffer); void decode(Buffer& buffer); QPID_COMMON_EXTERN bool operator==(const FieldValue&) const; - QPID_COMMON_INLINE_EXTERN bool operator!=(const FieldValue& v) const { return !(*this == v); } + QPID_COMMON_EXTERN bool operator!=(const FieldValue& v) const { return !(*this == v); } QPID_COMMON_EXTERN void print(std::ostream& out) const; @@ -98,7 +98,6 @@ class QPID_COMMON_CLASS_EXTERN FieldValue { template <typename T> T get() const { throw InvalidConversionException(); } template <class T, int W> T getIntegerValue() const; - template <class T> T getIntegerValue() const; template <class T, int W> T getFloatingPointValue() const; template <int W> void getFixedWidthValue(unsigned char*) const; template <class T> bool get(T&) const; @@ -197,18 +196,6 @@ inline T FieldValue::getIntegerValue() const } } -template <class T> -inline T FieldValue::getIntegerValue() const -{ - FixedWidthValue<1>* const fwv = dynamic_cast< FixedWidthValue<1>* const>(data.get()); - if (fwv) { - uint8_t* octets = fwv->rawOctets(); - return octets[0]; - } else { - throw InvalidConversionException(); - } -} - template <class T, int W> inline T FieldValue::getFloatingPointValue() const { FixedWidthValue<W>* const fwv = dynamic_cast< FixedWidthValue<W>* const>(data.get()); diff --git a/qpid/cpp/include/qpid/framing/List.h b/qpid/cpp/include/qpid/framing/List.h index 681445947c..0f17c7884c 100644 --- a/qpid/cpp/include/qpid/framing/List.h +++ b/qpid/cpp/include/qpid/framing/List.h @@ -36,11 +36,10 @@ class FieldValue; /** * Representation of an AMQP 0-10 list */ -class QPID_COMMON_CLASS_EXTERN List +class List { public: typedef boost::shared_ptr<FieldValue> ValuePtr; - typedef ValuePtr value_type; typedef std::list<ValuePtr> Values; typedef Values::const_iterator const_iterator; typedef Values::iterator iterator; @@ -54,19 +53,19 @@ class QPID_COMMON_CLASS_EXTERN List QPID_COMMON_EXTERN bool operator==(const List& other) const; // std collection interface. - QPID_COMMON_INLINE_EXTERN const_iterator begin() const { return values.begin(); } - QPID_COMMON_INLINE_EXTERN const_iterator end() const { return values.end(); } - QPID_COMMON_INLINE_EXTERN iterator begin() { return values.begin(); } - QPID_COMMON_INLINE_EXTERN iterator end(){ return values.end(); } + QPID_COMMON_EXTERN const_iterator begin() const { return values.begin(); } + QPID_COMMON_EXTERN const_iterator end() const { return values.end(); } + QPID_COMMON_EXTERN iterator begin() { return values.begin(); } + QPID_COMMON_EXTERN iterator end(){ return values.end(); } - QPID_COMMON_INLINE_EXTERN ValuePtr front() const { return values.front(); } - QPID_COMMON_INLINE_EXTERN ValuePtr back() const { return values.back(); } - QPID_COMMON_INLINE_EXTERN size_t size() const { return values.size(); } + QPID_COMMON_EXTERN ValuePtr front() const { return values.front(); } + QPID_COMMON_EXTERN ValuePtr back() const { return values.back(); } + QPID_COMMON_EXTERN size_t size() const { return values.size(); } - QPID_COMMON_INLINE_EXTERN iterator insert(iterator i, ValuePtr value) { return values.insert(i, value); } - QPID_COMMON_INLINE_EXTERN void erase(iterator i) { values.erase(i); } - QPID_COMMON_INLINE_EXTERN void push_back(ValuePtr value) { values.insert(end(), value); } - QPID_COMMON_INLINE_EXTERN void pop_back() { values.pop_back(); } + QPID_COMMON_EXTERN iterator insert(iterator i, ValuePtr value) { return values.insert(i, value); } + QPID_COMMON_EXTERN void erase(iterator i) { values.erase(i); } + QPID_COMMON_EXTERN void push_back(ValuePtr value) { values.insert(end(), value); } + QPID_COMMON_EXTERN void pop_back() { values.pop_back(); } private: Values values; diff --git a/qpid/cpp/include/qpid/framing/ProtocolVersion.h b/qpid/cpp/include/qpid/framing/ProtocolVersion.h index 30094c165d..e7e75d75f6 100644 --- a/qpid/cpp/include/qpid/framing/ProtocolVersion.h +++ b/qpid/cpp/include/qpid/framing/ProtocolVersion.h @@ -29,7 +29,7 @@ namespace qpid namespace framing { -class QPID_COMMON_CLASS_EXTERN ProtocolVersion +class ProtocolVersion { private: uint8_t major_; @@ -39,16 +39,16 @@ public: explicit ProtocolVersion(uint8_t _major=0, uint8_t _minor=0) : major_(_major), minor_(_minor) {} - QPID_COMMON_INLINE_EXTERN uint8_t getMajor() const { return major_; } - QPID_COMMON_INLINE_EXTERN void setMajor(uint8_t major) { major_ = major; } - QPID_COMMON_INLINE_EXTERN uint8_t getMinor() const { return minor_; } - QPID_COMMON_INLINE_EXTERN void setMinor(uint8_t minor) { minor_ = minor; } + QPID_COMMON_EXTERN uint8_t getMajor() const { return major_; } + QPID_COMMON_EXTERN void setMajor(uint8_t major) { major_ = major; } + QPID_COMMON_EXTERN uint8_t getMinor() const { return minor_; } + QPID_COMMON_EXTERN void setMinor(uint8_t minor) { minor_ = minor; } QPID_COMMON_EXTERN const std::string toString() const; QPID_COMMON_EXTERN ProtocolVersion& operator=(ProtocolVersion p); QPID_COMMON_EXTERN bool operator==(ProtocolVersion p) const; - QPID_COMMON_INLINE_EXTERN bool operator!=(ProtocolVersion p) const { return ! (*this == p); } + QPID_COMMON_EXTERN bool operator!=(ProtocolVersion p) const { return ! (*this == p); } }; } // namespace framing diff --git a/qpid/cpp/include/qpid/framing/SequenceNumber.h b/qpid/cpp/include/qpid/framing/SequenceNumber.h index eed15a4b75..1e53058df8 100644 --- a/qpid/cpp/include/qpid/framing/SequenceNumber.h +++ b/qpid/cpp/include/qpid/framing/SequenceNumber.h @@ -34,7 +34,7 @@ class Buffer; /** * 4-byte sequence number that 'wraps around'. */ -class QPID_COMMON_CLASS_EXTERN SequenceNumber : public +class SequenceNumber : public boost::equality_comparable< SequenceNumber, boost::less_than_comparable< SequenceNumber, boost::incrementable< diff --git a/qpid/cpp/include/qpid/framing/SequenceSet.h b/qpid/cpp/include/qpid/framing/SequenceSet.h index 0a78e418ba..39395e9ad7 100644 --- a/qpid/cpp/include/qpid/framing/SequenceSet.h +++ b/qpid/cpp/include/qpid/framing/SequenceSet.h @@ -29,7 +29,7 @@ namespace qpid { namespace framing { class Buffer; -class QPID_COMMON_CLASS_EXTERN SequenceSet : public RangeSet<SequenceNumber> { +class SequenceSet : public RangeSet<SequenceNumber> { public: SequenceSet() {} SequenceSet(const RangeSet<SequenceNumber>& r) diff --git a/qpid/cpp/include/qpid/framing/StructHelper.h b/qpid/cpp/include/qpid/framing/StructHelper.h index 21f9b91fa9..fc9a7909cc 100644 --- a/qpid/cpp/include/qpid/framing/StructHelper.h +++ b/qpid/cpp/include/qpid/framing/StructHelper.h @@ -30,7 +30,7 @@ namespace qpid { namespace framing { -class QPID_COMMON_CLASS_EXTERN StructHelper +class StructHelper { public: diff --git a/qpid/cpp/include/qpid/framing/Uuid.h b/qpid/cpp/include/qpid/framing/Uuid.h index ccfd7e9534..d0a8d02411 100644 --- a/qpid/cpp/include/qpid/framing/Uuid.h +++ b/qpid/cpp/include/qpid/framing/Uuid.h @@ -52,22 +52,22 @@ struct Uuid : public boost::array<uint8_t, 16> { // boost::array gives us ==, < etc. /** Copy from 16 bytes of data. */ - QPID_COMMON_EXTERN void assign(const uint8_t* data); + void assign(const uint8_t* data); /** Set to a new unique identifier. */ QPID_COMMON_EXTERN void generate(); /** Set to all zeros. */ - QPID_COMMON_EXTERN void clear(); + void clear(); /** Test for null (all zeros). */ QPID_COMMON_EXTERN bool isNull() const; - QPID_COMMON_INLINE_EXTERN operator bool() const { return !isNull(); } - QPID_COMMON_INLINE_EXTERN bool operator!() const { return isNull(); } + operator bool() const { return !isNull(); } + bool operator!() const { return isNull(); } QPID_COMMON_EXTERN void encode(framing::Buffer& buf) const; QPID_COMMON_EXTERN void decode(framing::Buffer& buf); - QPID_COMMON_INLINE_EXTERN uint32_t encodedSize() const + QPID_COMMON_EXTERN uint32_t encodedSize() const { return static_cast<uint32_t>(size()); } /** String value in format 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb. */ diff --git a/qpid/cpp/include/qpid/log/Logger.h b/qpid/cpp/include/qpid/log/Logger.h index d255b7e150..783ab7bdb9 100644 --- a/qpid/cpp/include/qpid/log/Logger.h +++ b/qpid/cpp/include/qpid/log/Logger.h @@ -33,10 +33,10 @@ namespace log { * is handled by Logger::Output-derived classes instantiated by the * platform's sink-related options. */ -class QPID_COMMON_CLASS_EXTERN Logger : private boost::noncopyable { +class Logger : private boost::noncopyable { public: /** Flags indicating what to include in the log output */ - enum FormatFlag { FILE=1, LINE=2, FUNCTION=4, LEVEL=8, TIME=16, THREAD=32, HIRES=64}; + enum FormatFlag { FILE=1, LINE=2, FUNCTION=4, LEVEL=8, TIME=16, THREAD=32}; /** * Logging output sink. @@ -93,7 +93,7 @@ class QPID_COMMON_CLASS_EXTERN Logger : private boost::noncopyable { QPID_COMMON_EXTERN void clear(); /** Get the options used to configure the logger. */ - QPID_COMMON_INLINE_EXTERN const Options& getOptions() const { return options; } + QPID_COMMON_EXTERN const Options& getOptions() const { return options; } private: diff --git a/qpid/cpp/include/qpid/log/Options.h b/qpid/cpp/include/qpid/log/Options.h index 17cbfde9bc..bbc47b47d3 100644 --- a/qpid/cpp/include/qpid/log/Options.h +++ b/qpid/cpp/include/qpid/log/Options.h @@ -39,7 +39,7 @@ struct Options : public qpid::Options { std::string argv0; std::string name; std::vector<std::string> selectors; - bool time, level, thread, source, function, hiresTs; + bool time, level, thread, source, function; bool trace; std::string prefix; std::auto_ptr<SinkOptions> sinkOptions; diff --git a/qpid/cpp/include/qpid/management/ManagementObject.h b/qpid/cpp/include/qpid/management/ManagementObject.h index 16bf21038c..747edda150 100644 --- a/qpid/cpp/include/qpid/management/ManagementObject.h +++ b/qpid/cpp/include/qpid/management/ManagementObject.h @@ -58,14 +58,14 @@ protected: std::string agentName; void fromString(const std::string&); public: - QPID_COMMON_INLINE_EXTERN ObjectId() : agent(0), first(0), second(0), agentEpoch(0) {} - QPID_COMMON_INLINE_EXTERN ObjectId(const types::Variant& map) : + QPID_COMMON_EXTERN ObjectId() : agent(0), first(0), second(0), agentEpoch(0) {} + QPID_COMMON_EXTERN ObjectId(const types::Variant& map) : agent(0), first(0), second(0), agentEpoch(0) { mapDecode(map.asMap()); } QPID_COMMON_EXTERN ObjectId(uint8_t flags, uint16_t seq, uint32_t broker); QPID_COMMON_EXTERN ObjectId(AgentAttachment* _agent, uint8_t flags, uint16_t seq); QPID_COMMON_EXTERN ObjectId(std::istream&); QPID_COMMON_EXTERN ObjectId(const std::string&); - QPID_COMMON_INLINE_EXTERN ObjectId(const std::string& agentAddress, const std::string& key, + QPID_COMMON_EXTERN ObjectId(const std::string& agentAddress, const std::string& key, uint64_t epoch=0) : agent(0), first(0), second(0), agentEpoch(epoch), v2Key(key), agentName(agentAddress) {} @@ -76,15 +76,15 @@ public: QPID_COMMON_EXTERN void mapEncode(types::Variant::Map& map) const; QPID_COMMON_EXTERN void mapDecode(const types::Variant::Map& map); QPID_COMMON_EXTERN operator types::Variant::Map() const; - QPID_COMMON_INLINE_EXTERN uint32_t encodedSize() const { return 16; }; + QPID_COMMON_EXTERN uint32_t encodedSize() const { return 16; }; QPID_COMMON_EXTERN void encode(std::string& buffer) const; QPID_COMMON_EXTERN void decode(const std::string& buffer); QPID_COMMON_EXTERN bool equalV1(const ObjectId &other) const; - QPID_COMMON_INLINE_EXTERN void setV2Key(const std::string& _key) { v2Key = _key; } + QPID_COMMON_EXTERN void setV2Key(const std::string& _key) { v2Key = _key; } QPID_COMMON_EXTERN void setV2Key(const ManagementObject& object); - QPID_COMMON_INLINE_EXTERN void setAgentName(const std::string& _name) { agentName = _name; } - QPID_COMMON_INLINE_EXTERN const std::string& getAgentName() const { return agentName; } - QPID_COMMON_INLINE_EXTERN const std::string& getV2Key() const { return v2Key; } + QPID_COMMON_EXTERN void setAgentName(const std::string& _name) { agentName = _name; } + QPID_COMMON_EXTERN const std::string& getAgentName() const { return agentName; } + QPID_COMMON_EXTERN const std::string& getV2Key() const { return v2Key; } friend QPID_COMMON_EXTERN std::ostream& operator<<(std::ostream&, const ObjectId&); }; @@ -131,7 +131,7 @@ public: virtual ~ManagementItem() {} }; -class QPID_COMMON_CLASS_EXTERN ManagementObject : public ManagementItem +class ManagementObject : public ManagementItem { protected: diff --git a/qpid/cpp/include/qpid/messaging/Address.h b/qpid/cpp/include/qpid/messaging/Address.h index 63dce0c49d..bebbfc72f6 100644 --- a/qpid/cpp/include/qpid/messaging/Address.h +++ b/qpid/cpp/include/qpid/messaging/Address.h @@ -119,7 +119,7 @@ class AddressImpl; * * An address has value semantics. */ -class QPID_MESSAGING_CLASS_EXTERN Address +class Address { public: QPID_MESSAGING_EXTERN Address(); diff --git a/qpid/cpp/include/qpid/messaging/Connection.h b/qpid/cpp/include/qpid/messaging/Connection.h index 165573e2ef..1ad7a7242f 100644 --- a/qpid/cpp/include/qpid/messaging/Connection.h +++ b/qpid/cpp/include/qpid/messaging/Connection.h @@ -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 Connection : public qpid::messaging::Handle<Co * 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()); diff --git a/qpid/cpp/include/qpid/messaging/Duration.h b/qpid/cpp/include/qpid/messaging/Duration.h index 6b8f05c7c6..abcf169090 100644 --- a/qpid/cpp/include/qpid/messaging/Duration.h +++ b/qpid/cpp/include/qpid/messaging/Duration.h @@ -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 Duration }; 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 diff --git a/qpid/cpp/include/qpid/messaging/FailoverUpdates.h b/qpid/cpp/include/qpid/messaging/FailoverUpdates.h index 6d7314620a..14a1a31b63 100644 --- a/qpid/cpp/include/qpid/messaging/FailoverUpdates.h +++ b/qpid/cpp/include/qpid/messaging/FailoverUpdates.h @@ -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); diff --git a/qpid/cpp/include/qpid/messaging/Handle.h b/qpid/cpp/include/qpid/messaging/Handle.h index 97a8f00b54..1e634ef888 100644 --- a/qpid/cpp/include/qpid/messaging/Handle.h +++ b/qpid/cpp/include/qpid/messaging/Handle.h @@ -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&); diff --git a/qpid/cpp/include/qpid/messaging/ImportExport.h b/qpid/cpp/include/qpid/messaging/ImportExport.h index ab5f21f618..52f3eb8568 100644 --- a/qpid/cpp/include/qpid/messaging/ImportExport.h +++ b/qpid/cpp/include/qpid/messaging/ImportExport.h @@ -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*/ diff --git a/qpid/cpp/include/qpid/messaging/Message.h b/qpid/cpp/include/qpid/messaging/Message.h index e89a6ce02f..d48af35cc0 100644 --- a/qpid/cpp/include/qpid/messaging/Message.h +++ b/qpid/cpp/include/qpid/messaging/Message.h @@ -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 Message 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 Message */ 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 Message 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 EncodingException : qpid::types::Exception * @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 Message& message, * @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 Message& message, * @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 qpid::types::Variant::Map& map, * @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 diff --git a/qpid/cpp/include/qpid/messaging/Receiver.h b/qpid/cpp/include/qpid/messaging/Receiver.h index 13317dfcbd..6f3ae961db 100644 --- a/qpid/cpp/include/qpid/messaging/Receiver.h +++ b/qpid/cpp/include/qpid/messaging/Receiver.h @@ -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); diff --git a/qpid/cpp/include/qpid/messaging/Sender.h b/qpid/cpp/include/qpid/messaging/Sender.h index 8e1c5846e9..85658f37cc 100644 --- a/qpid/cpp/include/qpid/messaging/Sender.h +++ b/qpid/cpp/include/qpid/messaging/Sender.h @@ -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); diff --git a/qpid/cpp/include/qpid/messaging/Session.h b/qpid/cpp/include/qpid/messaging/Session.h index 428f8aa491..6c023629e0 100644 --- a/qpid/cpp/include/qpid/messaging/Session.h +++ b/qpid/cpp/include/qpid/messaging/Session.h @@ -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); @@ -78,10 +78,6 @@ class QPID_MESSAGING_CLASS_EXTERN Session : public qpid::messaging::Handle<Sessi */ 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. diff --git a/qpid/cpp/include/qpid/messaging/exceptions.h b/qpid/cpp/include/qpid/messaging/exceptions.h index 07d1dc414b..0ff608b343 100644 --- a/qpid/cpp/include/qpid/messaging/exceptions.h +++ b/qpid/cpp/include/qpid/messaging/exceptions.h @@ -32,7 +32,7 @@ namespace messaging { /** \ingroup messaging */ -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(); @@ -41,22 +41,22 @@ struct QPID_MESSAGING_CLASS_EXTERN MessagingException : public qpid::types::Exce //TODO: override what() to include detail if present }; -struct QPID_MESSAGING_CLASS_EXTERN InvalidOptionString : public MessagingException +struct InvalidOptionString : public MessagingException { QPID_MESSAGING_EXTERN InvalidOptionString(const std::string& msg); }; -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&); }; @@ -65,17 +65,17 @@ struct QPID_MESSAGING_CLASS_EXTERN AddressError : public LinkError * 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); }; -struct QPID_MESSAGING_CLASS_EXTERN AssertionFailed : public ResolutionError +struct AssertionFailed : public ResolutionError { QPID_MESSAGING_EXTERN AssertionFailed(const std::string& msg); }; -struct QPID_MESSAGING_CLASS_EXTERN NotFound : public ResolutionError +struct NotFound : public ResolutionError { QPID_MESSAGING_EXTERN NotFound(const std::string& msg); }; @@ -83,67 +83,67 @@ struct QPID_MESSAGING_CLASS_EXTERN NotFound : public ResolutionError /** * 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&); }; -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&); }; -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&); }; -struct QPID_MESSAGING_CLASS_EXTERN TransactionAborted : public TransactionError +struct TransactionAborted : public TransactionError { QPID_MESSAGING_EXTERN TransactionAborted(const std::string&); }; -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&); }; -struct QPID_MESSAGING_CLASS_EXTERN TransportFailure : public MessagingException +struct TransportFailure : public MessagingException { QPID_MESSAGING_EXTERN TransportFailure(const std::string&); }; diff --git a/qpid/cpp/include/qpid/sys/ExceptionHolder.h b/qpid/cpp/include/qpid/sys/ExceptionHolder.h index 4bc934cf75..9eff1d64c7 100644 --- a/qpid/cpp/include/qpid/sys/ExceptionHolder.h +++ b/qpid/cpp/include/qpid/sys/ExceptionHolder.h @@ -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 diff --git a/qpid/cpp/include/qpid/sys/IntegerTypes.h b/qpid/cpp/include/qpid/sys/IntegerTypes.h index 75fa921de0..89635f033e 100755 --- a/qpid/cpp/include/qpid/sys/IntegerTypes.h +++ b/qpid/cpp/include/qpid/sys/IntegerTypes.h @@ -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 diff --git a/qpid/cpp/include/qpid/sys/Runnable.h b/qpid/cpp/include/qpid/sys/Runnable.h index fed7663cb6..0f1243a277 100644 --- a/qpid/cpp/include/qpid/sys/Runnable.h +++ b/qpid/cpp/include/qpid/sys/Runnable.h @@ -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 */ diff --git a/qpid/cpp/include/qpid/sys/Thread.h b/qpid/cpp/include/qpid/sys/Thread.h index f556612908..45a39e796f 100644 --- a/qpid/cpp/include/qpid/sys/Thread.h +++ b/qpid/cpp/include/qpid/sys/Thread.h @@ -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) diff --git a/qpid/cpp/include/qpid/sys/Time.h b/qpid/cpp/include/qpid/sys/Time.h index 9c5ac66e9a..d3ab832229 100644 --- a/qpid/cpp/include/qpid/sys/Time.h +++ b/qpid/cpp/include/qpid/sys/Time.h @@ -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 usecs); /** 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*/ diff --git a/qpid/cpp/include/qpid/sys/windows/IntegerTypes.h b/qpid/cpp/include/qpid/sys/windows/IntegerTypes.h index 28b82da1a0..ece1a618e9 100755 --- a/qpid/cpp/include/qpid/sys/windows/IntegerTypes.h +++ b/qpid/cpp/include/qpid/sys/windows/IntegerTypes.h @@ -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; diff --git a/qpid/cpp/include/qpid/types/Exception.h b/qpid/cpp/include/qpid/types/Exception.h index 483d104cc8..d061a7df0e 100644 --- a/qpid/cpp/include/qpid/types/Exception.h +++ b/qpid/cpp/include/qpid/types/Exception.h @@ -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(); diff --git a/qpid/cpp/include/qpid/types/ImportExport.h b/qpid/cpp/include/qpid/types/ImportExport.h index 8fa41884fb..bb10575fcd 100644 --- a/qpid/cpp/include/qpid/types/ImportExport.h +++ b/qpid/cpp/include/qpid/types/ImportExport.h @@ -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*/ diff --git a/qpid/cpp/include/qpid/types/Uuid.h b/qpid/cpp/include/qpid/types/Uuid.h index 02af4c7e7f..467a895184 100644 --- a/qpid/cpp/include/qpid/types/Uuid.h +++ b/qpid/cpp/include/qpid/types/Uuid.h @@ -29,7 +29,7 @@ namespace qpid { namespace types { -class QPID_TYPES_CLASS_EXTERN Uuid +class Uuid { public: static const size_t SIZE; diff --git a/qpid/cpp/include/qpid/types/Variant.h b/qpid/cpp/include/qpid/types/Variant.h index 4459fc4123..9ae672b7c2 100644 --- a/qpid/cpp/include/qpid/types/Variant.h +++ b/qpid/cpp/include/qpid/types/Variant.h @@ -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; |