diff options
| author | Alan Conway <aconway@apache.org> | 2008-07-15 14:59:37 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2008-07-15 14:59:37 +0000 |
| commit | 08ee49c5cbabfaa6906e5bae39ab3677dc207fc4 (patch) | |
| tree | 20d5a1aa4c207254e53ef22b66fabbb42ac2e36a /cpp/src/qpid | |
| parent | 64d1a8e63e8a7f82837e8de095e5d23837835e65 (diff) | |
| download | qpid-python-08ee49c5cbabfaa6906e5bae39ab3677dc207fc4.tar.gz | |
Switched from shared_ptr to intrusive_ptr and RefCounted for Broker.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@676932 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid')
| -rw-r--r-- | cpp/src/qpid/broker/Broker.cpp | 6 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/Broker.h | 8 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/BrokerSingleton.cpp | 4 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/BrokerSingleton.h | 4 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/SignalHandler.cpp | 6 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/SignalHandler.h | 6 |
6 files changed, 18 insertions, 16 deletions
diff --git a/cpp/src/qpid/broker/Broker.cpp b/cpp/src/qpid/broker/Broker.cpp index 4971458644..47d9dad537 100644 --- a/cpp/src/qpid/broker/Broker.cpp +++ b/cpp/src/qpid/broker/Broker.cpp @@ -240,16 +240,16 @@ void Broker::declareStandardExchange(const std::string& name, const std::string& } -shared_ptr<Broker> Broker::create(int16_t port) +boost::intrusive_ptr<Broker> Broker::create(int16_t port) { Options config; config.port=port; return create(config); } -shared_ptr<Broker> Broker::create(const Options& opts) +boost::intrusive_ptr<Broker> Broker::create(const Options& opts) { - return shared_ptr<Broker>(new Broker(opts)); + return boost::intrusive_ptr<Broker>(new Broker(opts)); } void Broker::setStore (MessageStore* _store) diff --git a/cpp/src/qpid/broker/Broker.h b/cpp/src/qpid/broker/Broker.h index be59cef24c..a8e5300718 100644 --- a/cpp/src/qpid/broker/Broker.h +++ b/cpp/src/qpid/broker/Broker.h @@ -44,7 +44,9 @@ #include "qpid/framing/OutputHandler.h" #include "qpid/framing/ProtocolInitiation.h" #include "qpid/sys/Runnable.h" +#include "qpid/RefCounted.h" +#include <boost/intrusive_ptr.hpp> #include <vector> namespace qpid { @@ -64,7 +66,7 @@ static const uint16_t DEFAULT_PORT=5672; * A broker instance. */ class Broker : public sys::Runnable, public Plugin::Target, - public management::Manageable + public management::Manageable, public RefCounted { public: @@ -89,8 +91,8 @@ class Broker : public sys::Runnable, public Plugin::Target, virtual ~Broker(); Broker(const Options& configuration); - static shared_ptr<Broker> create(const Options& configuration); - static shared_ptr<Broker> create(int16_t port = DEFAULT_PORT); + static boost::intrusive_ptr<Broker> create(const Options& configuration); + static boost::intrusive_ptr<Broker> create(int16_t port = DEFAULT_PORT); /** * Return listening port. If called before bind this is diff --git a/cpp/src/qpid/broker/BrokerSingleton.cpp b/cpp/src/qpid/broker/BrokerSingleton.cpp index 77200dd760..5ba8c9d1e1 100644 --- a/cpp/src/qpid/broker/BrokerSingleton.cpp +++ b/cpp/src/qpid/broker/BrokerSingleton.cpp @@ -24,13 +24,13 @@ namespace broker { BrokerSingleton::BrokerSingleton() { if (broker.get() == 0) broker = Broker::create(); - shared_ptr<Broker>::operator=(broker); + boost::intrusive_ptr<Broker>::operator=(broker); } BrokerSingleton::~BrokerSingleton() { broker->shutdown(); } -shared_ptr<Broker> BrokerSingleton::broker; +boost::intrusive_ptr<Broker> BrokerSingleton::broker; }} // namespace qpid::broker diff --git a/cpp/src/qpid/broker/BrokerSingleton.h b/cpp/src/qpid/broker/BrokerSingleton.h index 14b932df36..22b707506b 100644 --- a/cpp/src/qpid/broker/BrokerSingleton.h +++ b/cpp/src/qpid/broker/BrokerSingleton.h @@ -36,13 +36,13 @@ namespace broker { * * THREAD UNSAFE. */ -class BrokerSingleton : public shared_ptr<Broker> +class BrokerSingleton : public boost::intrusive_ptr<Broker> { public: BrokerSingleton(); ~BrokerSingleton(); private: - static shared_ptr<Broker> broker; + static boost::intrusive_ptr<Broker> broker; }; }} // namespace qpid::broker diff --git a/cpp/src/qpid/broker/SignalHandler.cpp b/cpp/src/qpid/broker/SignalHandler.cpp index c6d7b10218..fee54cfdfc 100644 --- a/cpp/src/qpid/broker/SignalHandler.cpp +++ b/cpp/src/qpid/broker/SignalHandler.cpp @@ -25,9 +25,9 @@ namespace qpid { namespace broker { -boost::shared_ptr<Broker> SignalHandler::broker; +boost::intrusive_ptr<Broker> SignalHandler::broker; -void SignalHandler::setBroker(const boost::shared_ptr<Broker>& b) { +void SignalHandler::setBroker(const boost::intrusive_ptr<Broker>& b) { broker = b; signal(SIGINT,shutdownHandler); @@ -44,7 +44,7 @@ void SignalHandler::setBroker(const boost::shared_ptr<Broker>& b) { void SignalHandler::shutdownHandler(int) { if (broker.get()) { broker->shutdown(); - broker.reset(); + broker = 0; // Release the broker reference. } } diff --git a/cpp/src/qpid/broker/SignalHandler.h b/cpp/src/qpid/broker/SignalHandler.h index 3da7d09756..d2cdfae07c 100644 --- a/cpp/src/qpid/broker/SignalHandler.h +++ b/cpp/src/qpid/broker/SignalHandler.h @@ -22,7 +22,7 @@ * */ -#include <boost/shared_ptr.hpp> +#include <boost/intrusive_ptr.hpp> namespace qpid { namespace broker { @@ -36,11 +36,11 @@ class SignalHandler { public: /** Set the broker to be shutdown on signals */ - static void setBroker(const boost::shared_ptr<Broker>& broker); + static void setBroker(const boost::intrusive_ptr<Broker>& broker); private: static void shutdownHandler(int); - static boost::shared_ptr<Broker> broker; + static boost::intrusive_ptr<Broker> broker; }; }} // namespace qpid::broker |
