Author: aconway Date: Mon Feb 20 20:45:22 2012 New Revision: 1291436 URL: http://svn.apache.org/viewvc?rev=1291436&view=rev Log: NO-JIRA: Fix missing EXTERN declarations, broke windows build.
Added: qpid/trunk/qpid/cpp/src/qmf/BrokerImportExport.h (with props) Modified: qpid/trunk/qpid/cpp/include/qpid/framing/SequenceNumber.h qpid/trunk/qpid/cpp/include/qpid/framing/SequenceSet.h qpid/trunk/qpid/cpp/include/qpid/types/Variant.h qpid/trunk/qpid/cpp/managementgen/qmfgen/schema.py qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Event.h qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Package.h qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h qpid/trunk/qpid/cpp/src/qpid/broker/Link.h qpid/trunk/qpid/cpp/src/qpid/broker/LinkRegistry.cpp qpid/trunk/qpid/cpp/src/qpid/broker/LinkRegistry.h qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.h qpid/trunk/qpid/cpp/src/qpid/ha/ReplicatingSubscription.h Modified: qpid/trunk/qpid/cpp/include/qpid/framing/SequenceNumber.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/framing/SequenceNumber.h?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/include/qpid/framing/SequenceNumber.h (original) +++ qpid/trunk/qpid/cpp/include/qpid/framing/SequenceNumber.h Mon Feb 20 20:45:22 2012 @@ -52,9 +52,9 @@ boost::equality_comparable< uint32_t getValue() const { return uint32_t(value); } operator uint32_t() const { return uint32_t(value); } - void encode(Buffer& buffer) const; - void decode(Buffer& buffer); - uint32_t encodedSize() const; + QPID_COMMON_EXTERN void encode(Buffer& buffer) const; + QPID_COMMON_EXTERN void decode(Buffer& buffer); + QPID_COMMON_EXTERN uint32_t encodedSize() const; template <class S> void serialize(S& s) { s(value); } Modified: qpid/trunk/qpid/cpp/include/qpid/framing/SequenceSet.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/framing/SequenceSet.h?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/include/qpid/framing/SequenceSet.h (original) +++ qpid/trunk/qpid/cpp/include/qpid/framing/SequenceSet.h Mon Feb 20 20:45:22 2012 @@ -38,9 +38,9 @@ class QPID_COMMON_CLASS_EXTERN SequenceS SequenceSet(const SequenceNumber& start, const SequenceNumber finish) { add(start,finish); } - void encode(Buffer& buffer) const; - void decode(Buffer& buffer); - uint32_t encodedSize() const; + QPID_COMMON_EXTERN void encode(Buffer& buffer) const; + QPID_COMMON_EXTERN void decode(Buffer& buffer); + QPID_COMMON_EXTERN uint32_t encodedSize() const; QPID_COMMON_EXTERN bool contains(const SequenceNumber& s) const; QPID_COMMON_EXTERN void add(const SequenceNumber& s); Modified: qpid/trunk/qpid/cpp/include/qpid/types/Variant.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/types/Variant.h?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/include/qpid/types/Variant.h (original) +++ qpid/trunk/qpid/cpp/include/qpid/types/Variant.h Mon Feb 20 20:45:22 2012 @@ -60,9 +60,9 @@ enum VariantType { VAR_UUID }; -std::string getTypeName(VariantType type); +QPID_TYPES_EXTERN std::string getTypeName(VariantType type); -bool isIntegerType(VariantType type); +QPID_TYPES_EXTERN bool isIntegerType(VariantType type); class VariantImpl; Modified: qpid/trunk/qpid/cpp/managementgen/qmfgen/schema.py URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/managementgen/qmfgen/schema.py?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/managementgen/qmfgen/schema.py (original) +++ qpid/trunk/qpid/cpp/managementgen/qmfgen/schema.py Mon Feb 20 20:45:22 2012 @@ -1471,7 +1471,7 @@ class SchemaClass: def genMethodIdDeclarations (self, stream, variables): number = 1 for method in self.methods: - stream.write (" static const uint32_t METHOD_" + method.getName().upper() +\ + stream.write (" QPID_BROKER_EXTERN static const uint32_t METHOD_" + method.getName().upper() +\ " = %d;\n" % number) number = number + 1 Modified: qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h (original) +++ qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h Mon Feb 20 20:45:22 2012 @@ -24,6 +24,7 @@ /*MGEN:Root.Disclaimer*/ #include "qpid/management/ManagementObject.h" +#include "qmf/BrokerImportExport.h" namespace qpid { namespace management { @@ -34,7 +35,7 @@ namespace qpid { namespace qmf { /*MGEN:Class.OpenNamespaces*/ -class /*MGEN:Class.NameCap*/ : public ::qpid::management::ManagementObject +QPID_BROKER_CLASS_EXTERN class /*MGEN:Class.NameCap*/ : public ::qpid::management::ManagementObject { private: @@ -72,25 +73,25 @@ class /*MGEN:Class.NameCap*/ : public :: void aggregatePerThreadStats(struct PerThreadStats*) const; /*MGEN:ENDIF*/ public: - static void writeSchema(std::string& schema); - void mapEncodeValues(::qpid::types::Variant::Map& map, - bool includeProperties=true, - bool includeStatistics=true); - void mapDecodeValues(const ::qpid::types::Variant::Map& map); - void doMethod(std::string& methodName, - const ::qpid::types::Variant::Map& inMap, - ::qpid::types::Variant::Map& outMap, - const std::string& userId); - std::string getKey() const; + QPID_BROKER_EXTERN static void writeSchema(std::string& schema); + QPID_BROKER_EXTERN void mapEncodeValues(::qpid::types::Variant::Map& map, + bool includeProperties=true, + bool includeStatistics=true); + QPID_BROKER_EXTERN void mapDecodeValues(const ::qpid::types::Variant::Map& map); + QPID_BROKER_EXTERN void doMethod(std::string& methodName, + const ::qpid::types::Variant::Map& inMap, + ::qpid::types::Variant::Map& outMap, + const std::string& userId); + QPID_BROKER_EXTERN std::string getKey() const; /*MGEN:IF(Root.GenQMFv1)*/ - uint32_t writePropertiesSize() const; - void readProperties(const std::string& buf); - void writeProperties(std::string& buf) const; - void writeStatistics(std::string& buf, bool skipHeaders = false); - void doMethod(std::string& methodName, - const std::string& inBuf, - std::string& outBuf, - const std::string& userId); + QPID_BROKER_EXTERN uint32_t writePropertiesSize() const; + QPID_BROKER_EXTERN void readProperties(const std::string& buf); + QPID_BROKER_EXTERN void writeProperties(std::string& buf) const; + QPID_BROKER_EXTERN void writeStatistics(std::string& buf, bool skipHeaders = false); + QPID_BROKER_EXTERN void doMethod(std::string& methodName, + const std::string& inBuf, + std::string& outBuf, + const std::string& userId); /*MGEN:ENDIF*/ writeSchemaCall_t getWriteSchemaCall() { return writeSchema; } @@ -100,13 +101,17 @@ class /*MGEN:Class.NameCap*/ : public :: bool hasInst() { return false; } /*MGEN:ENDIF*/ - /*MGEN:Class.NameCap*/(::qpid::management::ManagementAgent* agent, - ::qpid::management::Manageable* coreObject/*MGEN:Class.ParentArg*//*MGEN:Class.ConstructorArgs*/); - ~/*MGEN:Class.NameCap*/(); + QPID_BROKER_EXTERN /*MGEN:Class.NameCap*/( + ::qpid::management::ManagementAgent* agent, + ::qpid::management::Manageable* coreObject/*MGEN:Class.ParentArg*//*MGEN:Class.ConstructorArgs*/); + + QPID_BROKER_EXTERN ~/*MGEN:Class.NameCap*/(); /*MGEN:Class.SetGeneralReferenceDeclaration*/ - static void registerSelf(::qpid::management::ManagementAgent* agent); + QPID_BROKER_EXTERN static void registerSelf( + ::qpid::management::ManagementAgent* agent); + std::string& getPackageName() const { return packageName; } std::string& getClassName() const { return className; } uint8_t* getMd5Sum() const { return md5Sum; } Modified: qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Event.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Event.h?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Event.h (original) +++ qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Event.h Mon Feb 20 20:45:22 2012 @@ -24,11 +24,12 @@ /*MGEN:Root.Disclaimer*/ #include "qpid/management/ManagementEvent.h" +#include "qmf/BrokerImportExport.h" namespace qmf { /*MGEN:Event.OpenNamespaces*/ -class Event/*MGEN:Event.NameCap*/ : public ::qpid::management::ManagementEvent +QPID_BROKER_CLASS_EXTERN class Event/*MGEN:Event.NameCap*/ : public ::qpid::management::ManagementEvent { private: static void writeSchema (std::string& schema); @@ -41,18 +42,18 @@ class Event/*MGEN:Event.NameCap*/ : publ public: writeSchemaCall_t getWriteSchemaCall(void) { return writeSchema; } - Event/*MGEN:Event.NameCap*/(/*MGEN:Event.ConstructorArgs*/); - ~Event/*MGEN:Event.NameCap*/() {}; + QPID_BROKER_EXTERN Event/*MGEN:Event.NameCap*/(/*MGEN:Event.ConstructorArgs*/); + QPID_BROKER_EXTERN ~Event/*MGEN:Event.NameCap*/() {}; static void registerSelf(::qpid::management::ManagementAgent* agent); std::string& getPackageName() const { return packageName; } std::string& getEventName() const { return eventName; } uint8_t* getMd5Sum() const { return md5Sum; } uint8_t getSeverity() const { return /*MGEN:Event.Severity*/; } - void encode(std::string& buffer) const; - void mapEncode(::qpid::types::Variant::Map& map) const; + QPID_BROKER_EXTERN void encode(std::string& buffer) const; + QPID_BROKER_EXTERN void mapEncode(::qpid::types::Variant::Map& map) const; - static bool match(const std::string& evt, const std::string& pkg); + QPID_BROKER_EXTERN static bool match(const std::string& evt, const std::string& pkg); }; }/*MGEN:Event.CloseNamespaces*/ Modified: qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Package.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Package.h?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Package.h (original) +++ qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Package.h Mon Feb 20 20:45:22 2012 @@ -24,6 +24,7 @@ /*MGEN:Root.Disclaimer*/ #include "qpid//*MGEN:Class.AgentHeaderLocation*//ManagementAgent.h" +#include "qmf/BrokerImportExport.h" namespace qmf { /*MGEN:Class.OpenNamespaces*/ @@ -31,8 +32,8 @@ namespace qmf { class Package { public: - Package (::qpid::management::ManagementAgent* agent); - ~Package () {} + QPID_BROKER_EXTERN Package (::qpid::management::ManagementAgent* agent); + QPID_BROKER_EXTERN ~Package () {} }; }/*MGEN:Class.CloseNamespaces*/ Added: qpid/trunk/qpid/cpp/src/qmf/BrokerImportExport.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qmf/BrokerImportExport.h?rev=1291436&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/qmf/BrokerImportExport.h (added) +++ qpid/trunk/qpid/cpp/src/qmf/BrokerImportExport.h Mon Feb 20 20:45:22 2012 @@ -0,0 +1,42 @@ +#ifndef QPID_BROKER_IMPORT_EXPORT_H +#define QPID_BROKER_IMPORT_EXPORT_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. + */ + +#if defined(WIN32) && !defined(QPID_DECLARE_STATIC) +# if defined(BROKER_EXPORT) || defined (qpidbroker_EXPORTS) +# define QPID_BROKER_EXTERN __declspec(dllexport) +# else +# define QPID_BROKER_EXTERN __declspec(dllimport) +# endif +# ifdef _MSC_VER +# define QPID_BROKER_CLASS_EXTERN +# define QPID_BROKER_INLINE_EXTERN QPID_BROKER_EXTERN +# else +# define QPID_BROKER_CLASS_EXTERN QPID_BROKER_EXTERN +# define QPID_BROKER_INLINE_EXTERN +# endif +#else +# define QPID_BROKER_EXTERN +# define QPID_BROKER_CLASS_EXTERN +# define QPID_BROKER_INLINE_EXTERN +#endif + +#endif Propchange: qpid/trunk/qpid/cpp/src/qmf/BrokerImportExport.h ------------------------------------------------------------------------------ svn:eol-style = native Propchange: qpid/trunk/qpid/cpp/src/qmf/BrokerImportExport.h ------------------------------------------------------------------------------ svn:keywords = Rev Date Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h (original) +++ qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h Mon Feb 20 20:45:22 2012 @@ -205,7 +205,7 @@ public: ConsumerFactories consumerFactories; public: - virtual ~Broker(); + QPID_BROKER_EXTERN virtual ~Broker(); QPID_BROKER_EXTERN Broker(const Options& configuration); static QPID_BROKER_EXTERN boost::intrusive_ptr<Broker> create(const Options& configuration); @@ -217,16 +217,16 @@ public: * port, which will be different if the configured port is * 0. */ - virtual uint16_t getPort(const std::string& name) const; + QPID_BROKER_EXTERN virtual uint16_t getPort(const std::string& name) const; /** * Run the broker. Implements Runnable::run() so the broker * can be run in a separate thread. */ - virtual void run(); + QPID_BROKER_EXTERN virtual void run(); /** Shut down the broker */ - virtual void shutdown(); + QPID_BROKER_EXTERN virtual void shutdown(); QPID_BROKER_EXTERN void setStore (boost::shared_ptr<MessageStore>& store); MessageStore& getStore() { return *store; } @@ -246,14 +246,14 @@ public: SessionManager& getSessionManager() { return sessionManager; } const std::string& getFederationTag() const { return federationTag; } - management::ManagementObject* GetManagementObject (void) const; - management::Manageable* GetVhostObject (void) const; - management::Manageable::status_t ManagementMethod (uint32_t methodId, - management::Args& args, - std::string& text); + QPID_BROKER_EXTERN management::ManagementObject* GetManagementObject() const; + QPID_BROKER_EXTERN management::Manageable* GetVhostObject() const; + QPID_BROKER_EXTERN management::Manageable::status_t ManagementMethod( + uint32_t methodId, management::Args& args, std::string& text); /** Add to the broker's protocolFactorys */ - void registerProtocolFactory(const std::string& name, boost::shared_ptr<sys::ProtocolFactory>); + QPID_BROKER_EXTERN void registerProtocolFactory( + const std::string& name, boost::shared_ptr<sys::ProtocolFactory>); /** Accept connections */ QPID_BROKER_EXTERN void accept(); @@ -271,15 +271,17 @@ public: /** Move messages from one queue to another. A zero quantity means to move all messages */ - uint32_t queueMoveMessages( const std::string& srcQueue, - const std::string& destQueue, - uint32_t qty, - const qpid::types::Variant::Map& filter); + QPID_BROKER_EXTERN uint32_t queueMoveMessages( + const std::string& srcQueue, + const std::string& destQueue, + uint32_t qty, + const qpid::types::Variant::Map& filter); - boost::shared_ptr<sys::ProtocolFactory> getProtocolFactory(const std::string& name = TCP_TRANSPORT) const; + QPID_BROKER_EXTERN boost::shared_ptr<sys::ProtocolFactory> getProtocolFactory( + const std::string& name = TCP_TRANSPORT) const; /** Expose poller so plugins can register their descriptors. */ - boost::shared_ptr<sys::Poller> getPoller(); + QPID_BROKER_EXTERN boost::shared_ptr<sys::Poller> getPoller(); boost::shared_ptr<sys::ConnectionCodec::Factory> getConnectionFactory() { return factory; } void setConnectionFactory(boost::shared_ptr<sys::ConnectionCodec::Factory> f) { factory = f; } @@ -289,7 +291,7 @@ public: /** Timer for tasks that must be synchronized if we are in a cluster */ sys::Timer& getClusterTimer() { return clusterTimer.get() ? *clusterTimer : timer; } - void setClusterTimer(std::auto_ptr<sys::Timer>); + QPID_BROKER_EXTERN void setClusterTimer(std::auto_ptr<sys::Timer>); boost::function<std::vector<Url> ()> getKnownBrokers; @@ -320,15 +322,14 @@ public: * context. *@return true if delivery of a message should be deferred. */ - boost::function<bool (const std::string& queue, - const boost::intrusive_ptr<Message>& msg)> deferDelivery; + boost::function<bool (const std::string& queue, const boost::intrusive_ptr<Message>& msg)> deferDelivery; bool isAuthenticating ( ) { return config.auth; } bool isTimestamping() { return config.timestampRcvMsgs; } typedef boost::function1<void, boost::shared_ptr<Queue> > QueueFunctor; - std::pair<boost::shared_ptr<Queue>, bool> createQueue( + QPID_BROKER_EXTERN std::pair<boost::shared_ptr<Queue>, bool> createQueue( const std::string& name, bool durable, bool autodelete, @@ -337,30 +338,39 @@ public: const qpid::framing::FieldTable& arguments, const std::string& userId, const std::string& connectionId); - void deleteQueue(const std::string& name, - const std::string& userId, - const std::string& connectionId, - QueueFunctor check = QueueFunctor()); - std::pair<Exchange::shared_ptr, bool> createExchange( + + QPID_BROKER_EXTERN void deleteQueue( + const std::string& name, + const std::string& userId, + const std::string& connectionId, + QueueFunctor check = QueueFunctor()); + + QPID_BROKER_EXTERN std::pair<Exchange::shared_ptr, bool> createExchange( const std::string& name, const std::string& type, bool durable, const std::string& alternateExchange, const qpid::framing::FieldTable& args, const std::string& userId, const std::string& connectionId); - void deleteExchange(const std::string& name, const std::string& userId, - const std::string& connectionId); - void bind(const std::string& queue, - const std::string& exchange, - const std::string& key, - const qpid::framing::FieldTable& arguments, - const std::string& userId, - const std::string& connectionId); - void unbind(const std::string& queue, - const std::string& exchange, - const std::string& key, - const std::string& userId, - const std::string& connectionId); + + QPID_BROKER_EXTERN void deleteExchange( + const std::string& name, const std::string& userId, + const std::string& connectionId); + + QPID_BROKER_EXTERN void bind( + const std::string& queue, + const std::string& exchange, + const std::string& key, + const qpid::framing::FieldTable& arguments, + const std::string& userId, + const std::string& connectionId); + + QPID_BROKER_EXTERN void unbind( + const std::string& queue, + const std::string& exchange, + const std::string& key, + const std::string& userId, + const std::string& connectionId); ConsumerFactories& getConsumerFactories() { return consumerFactories; } ConnectionObservers& getConnectionObservers() { return connectionObservers; } Modified: qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h (original) +++ qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h Mon Feb 20 20:45:22 2012 @@ -54,7 +54,7 @@ class ExchangeRegistry{ bool durable, const qpid::framing::FieldTable& args = framing::FieldTable()); QPID_BROKER_EXTERN void destroy(const std::string& name); - Exchange::shared_ptr getDefault(); + QPID_BROKER_EXTERN Exchange::shared_ptr getDefault(); /** * Find the named exchange. Return 0 if not found. @@ -75,7 +75,7 @@ class ExchangeRegistry{ /** Register an exchange instance. *@return true if registered, false if exchange with same name is already registered. */ - bool registerExchange(const Exchange::shared_ptr&); + QPID_BROKER_EXTERN bool registerExchange(const Exchange::shared_ptr&); QPID_BROKER_EXTERN void registerType(const std::string& type, FactoryFunction); @@ -85,7 +85,7 @@ class ExchangeRegistry{ for (ExchangeMap::const_iterator i = exchanges.begin(); i != exchanges.end(); ++i) f(i->second); } - + private: typedef std::map<std::string, Exchange::shared_ptr> ExchangeMap; typedef std::map<std::string, FactoryFunction > FunctionMap; Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Link.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Link.h?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/broker/Link.h (original) +++ qpid/trunk/qpid/cpp/src/qpid/broker/Link.h Mon Feb 20 20:45:22 2012 @@ -24,9 +24,11 @@ #include <boost/shared_ptr.hpp> #include "qpid/Url.h" +#include "qpid/broker/BrokerImportExport.h" #include "qpid/broker/MessageStore.h" #include "qpid/broker/PersistableConfig.h" #include "qpid/broker/Bridge.h" +#include "qpid/broker/BrokerImportExport.h" #include "qpid/sys/Mutex.h" #include "qpid/framing/FieldTable.h" #include "qpid/management/Manageable.h" @@ -94,6 +96,13 @@ class Link : public PersistableConfig, p bool tryFailoverLH(); // Called during maintenance visit bool hideManagement() const; + void established(Connection*); // Called when connection is create + void opened(); // Called when connection is open (after create) + void closed(int, std::string); // Called when connection goes away + void reconnectLH(const Address&); //called by LinkRegistry + + friend class LinkRegistry; // to call established, opened, closed + public: typedef boost::shared_ptr<Link> shared_ptr; @@ -119,13 +128,9 @@ class Link : public PersistableConfig, p uint nextChannel(); void add(Bridge::shared_ptr); void cancel(Bridge::shared_ptr); - void setUrl(const Url&); // Set URL for reconnection. - void established(Connection*); // Called when connection is create - void opened(); // Called when connection is open (after create) - void closed(int, std::string); // Called when connection goes away - void reconnectLH(const Address&); //called by LinkRegistry - void close(); // Close the link from within the broker. + QPID_BROKER_EXTERN void setUrl(const Url&); // Set URL for reconnection. + QPID_BROKER_EXTERN void close(); // Close the link from within the broker. std::string getAuthMechanism() { return authMechanism; } std::string getUsername() { return username; } Modified: qpid/trunk/qpid/cpp/src/qpid/broker/LinkRegistry.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/LinkRegistry.cpp?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/broker/LinkRegistry.cpp (original) +++ qpid/trunk/qpid/cpp/src/qpid/broker/LinkRegistry.cpp Mon Feb 20 20:45:22 2012 @@ -25,7 +25,9 @@ #include <iostream> #include <boost/format.hpp> -using namespace qpid::broker; +namespace qpid { +namespace broker { + using namespace qpid::sys; using std::string; using std::pair; @@ -45,16 +47,15 @@ LinkRegistry::LinkRegistry () : { } -namespace { -struct ConnectionObserverImpl : public ConnectionObserver { +class LinkRegistryConnectionObserver : public ConnectionObserver { LinkRegistry& links; - ConnectionObserverImpl(LinkRegistry& l) : links(l) {} + public: + LinkRegistryConnectionObserver(LinkRegistry& l) : links(l) {} void connection(Connection& c) { links.notifyConnection(c.getMgmtId(), &c); } void opened(Connection& c) { links.notifyOpened(c.getMgmtId()); } void closed(Connection& c) { links.notifyClosed(c.getMgmtId()); } void forced(Connection& c, const string& text) { links.notifyConnectionForced(c.getMgmtId(), text); } }; -} LinkRegistry::LinkRegistry (Broker* _broker) : broker(_broker), @@ -62,7 +63,7 @@ LinkRegistry::LinkRegistry (Broker* _bro realm(broker->getOptions().realm) { broker->getConnectionObservers().add( - boost::shared_ptr<ConnectionObserver>(new ConnectionObserverImpl(*this))); + boost::shared_ptr<ConnectionObserver>(new LinkRegistryConnectionObserver(*this))); } LinkRegistry::~LinkRegistry() {} @@ -368,3 +369,4 @@ void LinkRegistry::eachBridge(boost::fun for (BridgeMap::iterator i = bridges.begin(); i != bridges.end(); ++i) f(i->second); } +}} // namespace qpid::broker Modified: qpid/trunk/qpid/cpp/src/qpid/broker/LinkRegistry.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/LinkRegistry.h?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/broker/LinkRegistry.h (original) +++ qpid/trunk/qpid/cpp/src/qpid/broker/LinkRegistry.h Mon Feb 20 20:45:22 2012 @@ -23,6 +23,7 @@ */ #include <map> +#include "qpid/broker/BrokerImportExport.h" #include "qpid/broker/Bridge.h" #include "qpid/broker/MessageStore.h" #include "qpid/Address.h" @@ -56,43 +57,50 @@ namespace broker { static std::string createKey(const Address& address); static std::string createKey(const std::string& host, uint16_t port); + // Methods called by the connection observer. + void notifyConnection (const std::string& key, Connection* c); + void notifyOpened (const std::string& key); + void notifyClosed (const std::string& key); + void notifyConnectionForced (const std::string& key, const std::string& text); + friend class LinkRegistryConnectionObserver; + public: - LinkRegistry (); // Only used in store tests - LinkRegistry (Broker* _broker); - ~LinkRegistry(); - - std::pair<boost::shared_ptr<Link>, bool> - declare(const std::string& host, - uint16_t port, - const std::string& transport, - bool durable, - const std::string& authMechanism, - const std::string& username, - const std::string& password); - - std::pair<Bridge::shared_ptr, bool> - declare(const std::string& host, - uint16_t port, - bool durable, - const std::string& src, - const std::string& dest, - const std::string& key, - bool isQueue, - bool isLocal, - const std::string& id, - const std::string& excludes, - bool dynamic, - uint16_t sync, - Bridge::InitializeCallback=0 - ); - - void destroy(const std::string& host, const uint16_t port); - - void destroy(const std::string& host, - const uint16_t port, - const std::string& src, - const std::string& dest, - const std::string& key); + QPID_BROKER_EXTERN LinkRegistry (); // Only used in store tests + QPID_BROKER_EXTERN LinkRegistry (Broker* _broker); + QPID_BROKER_EXTERN ~LinkRegistry(); + + QPID_BROKER_EXTERN std::pair<boost::shared_ptr<Link>, bool> + declare(const std::string& host, + uint16_t port, + const std::string& transport, + bool durable, + const std::string& authMechanism, + const std::string& username, + const std::string& password); + + QPID_BROKER_EXTERN std::pair<Bridge::shared_ptr, bool> + declare(const std::string& host, + uint16_t port, + bool durable, + const std::string& src, + const std::string& dest, + const std::string& key, + bool isQueue, + bool isLocal, + const std::string& id, + const std::string& excludes, + bool dynamic, + uint16_t sync, + Bridge::InitializeCallback=0 + ); + + QPID_BROKER_EXTERN void destroy(const std::string& host, const uint16_t port); + + QPID_BROKER_EXTERN void destroy(const std::string& host, + const uint16_t port, + const std::string& src, + const std::string& dest, + const std::string& key); /** * Register the manageable parent for declared queues @@ -102,24 +110,20 @@ namespace broker { /** * Set the store to use. May only be called once. */ - void setStore (MessageStore*); + QPID_BROKER_EXTERN void setStore (MessageStore*); /** * Return the message store used. */ - MessageStore* getStore() const; + QPID_BROKER_EXTERN MessageStore* getStore() const; - void notifyConnection (const std::string& key, Connection* c); - void notifyOpened (const std::string& key); - void notifyClosed (const std::string& key); - void notifyConnectionForced (const std::string& key, const std::string& text); - std::string getAuthMechanism (const std::string& key); - std::string getAuthCredentials (const std::string& key); - std::string getAuthIdentity (const std::string& key); - std::string getUsername (const std::string& key); - std::string getPassword (const std::string& key); - std::string getHost (const std::string& key); - uint16_t getPort (const std::string& key); + QPID_BROKER_EXTERN std::string getAuthMechanism (const std::string& key); + QPID_BROKER_EXTERN std::string getAuthCredentials (const std::string& key); + QPID_BROKER_EXTERN std::string getAuthIdentity (const std::string& key); + QPID_BROKER_EXTERN std::string getUsername (const std::string& key); + QPID_BROKER_EXTERN std::string getPassword (const std::string& key); + QPID_BROKER_EXTERN std::string getHost (const std::string& key); + QPID_BROKER_EXTERN uint16_t getPort (const std::string& key); /** * Called by links failing over to new address @@ -132,13 +136,13 @@ namespace broker { * updated but links won't actually establish connections and * bridges won't therefore pull or push any messages. */ - void setPassive(bool); - bool isPassive() { return passive; } + QPID_BROKER_EXTERN void setPassive(bool); + QPID_BROKER_EXTERN bool isPassive() { return passive; } /** Iterate over each link in the registry. Used for cluster updates. */ - void eachLink(boost::function<void(boost::shared_ptr<Link>)> f); + QPID_BROKER_EXTERN void eachLink(boost::function<void(boost::shared_ptr<Link>)> f); /** Iterate over each bridge in the registry. Used for cluster updates. */ - void eachBridge(boost::function<void(boost::shared_ptr< Bridge>)> f); + QPID_BROKER_EXTERN void eachBridge(boost::function<void(boost::shared_ptr< Bridge>)> f); }; } } Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h (original) +++ qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h Mon Feb 20 20:45:22 2012 @@ -235,8 +235,9 @@ class Queue : public boost::enable_share /** * Bind self to specified exchange, and record that binding for unbinding on delete. */ - bool bind(boost::shared_ptr<Exchange> exchange, const std::string& key, - const qpid::framing::FieldTable& arguments=qpid::framing::FieldTable()); + QPID_BROKER_EXTERN bool bind( + boost::shared_ptr<Exchange> exchange, const std::string& key, + const qpid::framing::FieldTable& arguments=qpid::framing::FieldTable()); /** Acquire the message at the given position if it is available for acquire. Not to * be used by clients, but used by the broker for queue management. @@ -271,28 +272,29 @@ class Queue : public boost::enable_share bool exclusive = false); QPID_BROKER_EXTERN void cancel(Consumer::shared_ptr c); - uint32_t purge(const uint32_t purge_request=0, //defaults to all messages + QPID_BROKER_EXTERN uint32_t purge(const uint32_t purge_request=0, //defaults to all messages boost::shared_ptr<Exchange> dest=boost::shared_ptr<Exchange>(), const ::qpid::types::Variant::Map *filter=0); QPID_BROKER_EXTERN void purgeExpired(sys::Duration); //move qty # of messages to destination Queue destq - uint32_t move(const Queue::shared_ptr destq, uint32_t qty, - const qpid::types::Variant::Map *filter=0); + QPID_BROKER_EXTERN uint32_t move( + const Queue::shared_ptr destq, uint32_t qty, + const qpid::types::Variant::Map *filter=0); QPID_BROKER_EXTERN uint32_t getMessageCount() const; QPID_BROKER_EXTERN uint32_t getEnqueueCompleteMessageCount() const; QPID_BROKER_EXTERN uint32_t getConsumerCount() const; inline const std::string& getName() const { return name; } - bool isExclusiveOwner(const OwnershipToken* const o) const; - void releaseExclusiveOwnership(); - bool setExclusiveOwner(const OwnershipToken* const o); - bool hasExclusiveConsumer() const; - bool hasExclusiveOwner() const; + QPID_BROKER_EXTERN bool isExclusiveOwner(const OwnershipToken* const o) const; + QPID_BROKER_EXTERN void releaseExclusiveOwnership(); + QPID_BROKER_EXTERN bool setExclusiveOwner(const OwnershipToken* const o); + QPID_BROKER_EXTERN bool hasExclusiveConsumer() const; + QPID_BROKER_EXTERN bool hasExclusiveOwner() const; inline bool isDurable() const { return store != 0; } inline const framing::FieldTable& getSettings() const { return settings; } inline bool isAutoDelete() const { return autodelete; } - bool canAutoDelete() const; + QPID_BROKER_EXTERN bool canAutoDelete() const; const QueueBindings& getBindings() const { return bindings; } /** @@ -301,8 +303,8 @@ class Queue : public boost::enable_share QPID_BROKER_EXTERN void setLastNodeFailure(); QPID_BROKER_EXTERN void clearLastNodeFailure(); - bool enqueue(TransactionContext* ctxt, boost::intrusive_ptr<Message>& msg, bool suppressPolicyCheck = false); - void enqueueAborted(boost::intrusive_ptr<Message> msg); + QPID_BROKER_EXTERN bool enqueue(TransactionContext* ctxt, boost::intrusive_ptr<Message>& msg, bool suppressPolicyCheck = false); + QPID_BROKER_EXTERN void enqueueAborted(boost::intrusive_ptr<Message> msg); /** * dequeue from store (only done once messages is acknowledged) */ @@ -311,7 +313,7 @@ class Queue : public boost::enable_share * Inform the queue that a previous transactional dequeue * committed. */ - void dequeueCommitted(const QueuedMessage& msg); + QPID_BROKER_EXTERN void dequeueCommitted(const QueuedMessage& msg); /** * Inform queue of messages that were enqueued, have since @@ -319,7 +321,7 @@ class Queue : public boost::enable_share * thus are still logically on the queue) - used in * clustered broker. */ - void updateEnqueued(const QueuedMessage& msg); + QPID_BROKER_EXTERN void updateEnqueued(const QueuedMessage& msg); /** * Test whether the specified message (identified by its @@ -328,7 +330,7 @@ class Queue : public boost::enable_share * have been delievered to a subscriber who has not yet * accepted it). */ - bool isEnqueued(const QueuedMessage& msg); + QPID_BROKER_EXTERN bool isEnqueued(const QueuedMessage& msg); /** * Acquires the next available (oldest) message @@ -338,17 +340,17 @@ class Queue : public boost::enable_share /** Get the message at position pos, returns true if found and sets msg */ QPID_BROKER_EXTERN bool find(framing::SequenceNumber pos, QueuedMessage& msg ) const; - const QueuePolicy* getPolicy(); + QPID_BROKER_EXTERN const QueuePolicy* getPolicy(); - void setAlternateExchange(boost::shared_ptr<Exchange> exchange); - boost::shared_ptr<Exchange> getAlternateExchange(); - bool isLocal(boost::intrusive_ptr<Message>& msg); + QPID_BROKER_EXTERN void setAlternateExchange(boost::shared_ptr<Exchange> exchange); + QPID_BROKER_EXTERN boost::shared_ptr<Exchange> getAlternateExchange(); + QPID_BROKER_EXTERN bool isLocal(boost::intrusive_ptr<Message>& msg); //PersistableQueue support: - uint64_t getPersistenceId() const; - void setPersistenceId(uint64_t persistenceId) const; - void encode(framing::Buffer& buffer) const; - uint32_t encodedSize() const; + QPID_BROKER_EXTERN uint64_t getPersistenceId() const; + QPID_BROKER_EXTERN void setPersistenceId(uint64_t persistenceId) const; + QPID_BROKER_EXTERN void encode(framing::Buffer& buffer) const; + QPID_BROKER_EXTERN uint32_t encodedSize() const; /** * Restores a queue from encoded data (used in recovery) @@ -362,15 +364,15 @@ class Queue : public boost::enable_share virtual void setExternalQueueStore(ExternalQueueStore* inst); // Increment the rejected-by-consumer counter. - void countRejected() const; - void countFlowedToDisk(uint64_t size) const; - void countLoadedFromDisk(uint64_t size) const; + QPID_BROKER_EXTERN void countRejected() const; + QPID_BROKER_EXTERN void countFlowedToDisk(uint64_t size) const; + QPID_BROKER_EXTERN void countLoadedFromDisk(uint64_t size) const; // Manageable entry points - management::ManagementObject* GetManagementObject (void) const; + QPID_BROKER_EXTERN management::ManagementObject* GetManagementObject (void) const; management::Manageable::status_t - ManagementMethod (uint32_t methodId, management::Args& args, std::string& text); - void query(::qpid::types::Variant::Map&) const; + QPID_BROKER_EXTERN ManagementMethod (uint32_t methodId, management::Args& args, std::string& text); + QPID_BROKER_EXTERN void query(::qpid::types::Variant::Map&) const; /** Apply f to each Message on the queue. */ template <class F> void eachMessage(F f) { @@ -396,31 +398,31 @@ class Queue : public boost::enable_share /** return current position sequence number for the next message on the queue. */ QPID_BROKER_EXTERN framing::SequenceNumber getPosition(); - void addObserver(boost::shared_ptr<QueueObserver>); - void removeObserver(boost::shared_ptr<QueueObserver>); + QPID_BROKER_EXTERN void addObserver(boost::shared_ptr<QueueObserver>); + QPID_BROKER_EXTERN void removeObserver(boost::shared_ptr<QueueObserver>); QPID_BROKER_EXTERN void insertSequenceNumbers(const std::string& key); /** * Notify queue that recovery has completed. */ - void recoveryComplete(ExchangeRegistry& exchanges); + QPID_BROKER_EXTERN void recoveryComplete(ExchangeRegistry& exchanges); // For cluster update - QueueListeners& getListeners(); - Messages& getMessages(); - const Messages& getMessages() const; + QPID_BROKER_EXTERN QueueListeners& getListeners(); + QPID_BROKER_EXTERN Messages& getMessages(); + QPID_BROKER_EXTERN const Messages& getMessages() const; /** * Reserve space in policy for an enqueued message that * has been recovered in the prepared state (dtx only) */ - void recoverPrepared(boost::intrusive_ptr<Message>& msg); + QPID_BROKER_EXTERN void recoverPrepared(boost::intrusive_ptr<Message>& msg); - void flush(); + QPID_BROKER_EXTERN void flush(); - Broker* getBroker(); + QPID_BROKER_EXTERN Broker* getBroker(); uint32_t getDequeueSincePurge() { return dequeueSincePurge.get(); } - void setDequeueSincePurge(uint32_t value); + QPID_BROKER_EXTERN void setDequeueSincePurge(uint32_t value); }; } } Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.h?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.h (original) +++ qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.h Mon Feb 20 20:45:22 2012 @@ -22,6 +22,7 @@ * */ +#include "qpid/broker/BrokerImportExport.h" #include "qpid/broker/Consumer.h" #include "qpid/broker/Credit.h" #include "qpid/broker/Deliverable.h" @@ -99,42 +100,44 @@ class SemanticState : private boost::non bool haveCredit(); protected: - virtual bool doDispatch(); + QPID_BROKER_EXTERN virtual bool doDispatch(); size_t unacked() { return parent->unacked.size(); } public: typedef boost::shared_ptr<ConsumerImpl> shared_ptr; - ConsumerImpl(SemanticState* parent, - const std::string& name, boost::shared_ptr<Queue> queue, - bool ack, bool acquire, bool exclusive, - const std::string& tag, const std::string& resumeId, uint64_t resumeTtl, const framing::FieldTable& arguments); - virtual ~ConsumerImpl(); - OwnershipToken* getSession(); - virtual bool deliver(QueuedMessage& msg); - bool filter(boost::intrusive_ptr<Message> msg); - bool accept(boost::intrusive_ptr<Message> msg); - void cancel() {} - - void disableNotify(); - void enableNotify(); - void notify(); - bool isNotifyEnabled() const; - - void requestDispatch(); - - void setWindowMode(); - void setCreditMode(); - void addByteCredit(uint32_t value); - void addMessageCredit(uint32_t value); - void flush(); - void stop(); - void complete(DeliveryRecord&); + QPID_BROKER_EXTERN ConsumerImpl( + SemanticState* parent, + const std::string& name, boost::shared_ptr<Queue> queue, + bool ack, bool acquire, bool exclusive, + const std::string& tag, const std::string& resumeId, uint64_t resumeTtl, + const framing::FieldTable& arguments); + QPID_BROKER_EXTERN virtual ~ConsumerImpl(); + QPID_BROKER_EXTERN OwnershipToken* getSession(); + QPID_BROKER_EXTERN virtual bool deliver(QueuedMessage& msg); + QPID_BROKER_EXTERN bool filter(boost::intrusive_ptr<Message> msg); + QPID_BROKER_EXTERN bool accept(boost::intrusive_ptr<Message> msg); + QPID_BROKER_EXTERN void cancel() {} + + QPID_BROKER_EXTERN void disableNotify(); + QPID_BROKER_EXTERN void enableNotify(); + QPID_BROKER_EXTERN void notify(); + QPID_BROKER_EXTERN bool isNotifyEnabled() const; + + QPID_BROKER_EXTERN void requestDispatch(); + + QPID_BROKER_EXTERN void setWindowMode(); + QPID_BROKER_EXTERN void setCreditMode(); + QPID_BROKER_EXTERN void addByteCredit(uint32_t value); + QPID_BROKER_EXTERN void addMessageCredit(uint32_t value); + QPID_BROKER_EXTERN void flush(); + QPID_BROKER_EXTERN void stop(); + QPID_BROKER_EXTERN void complete(DeliveryRecord&); boost::shared_ptr<Queue> getQueue() const { return queue; } bool isBlocked() const { return blocked; } bool setBlocked(bool set) { std::swap(set, blocked); return set; } - bool doOutput(); + QPID_BROKER_EXTERN bool doOutput(); Credit& getCredit() { return credit; } const Credit& getCredit() const { return credit; } @@ -152,8 +155,11 @@ class SemanticState : private boost::non void acknowledged(const broker::QueuedMessage&) {} // manageable entry points - management::ManagementObject* GetManagementObject (void) const; - management::Manageable::status_t ManagementMethod (uint32_t methodId, management::Args& args, std::string& text); + QPID_BROKER_EXTERN management::ManagementObject* + GetManagementObject(void) const; + + QPID_BROKER_EXTERN management::Manageable::status_t + ManagementMethod(uint32_t methodId, management::Args& args, std::string& text); }; typedef std::map<std::string, DtxBuffer::shared_ptr> DtxBufferMap; Modified: qpid/trunk/qpid/cpp/src/qpid/ha/ReplicatingSubscription.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/ReplicatingSubscription.h?rev=1291436&r1=1291435&r2=1291436&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/ha/ReplicatingSubscription.h (original) +++ qpid/trunk/qpid/cpp/src/qpid/ha/ReplicatingSubscription.h Mon Feb 20 20:45:22 2012 @@ -33,7 +33,7 @@ namespace qpid { namespace broker { class Message; class Queue; -class QueuedMessage; +struct QueuedMessage; class OwnershipToken; } --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:commits-subscr...@qpid.apache.org