You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2008/07/15 16:59:38 UTC
svn commit: r676932 - in /incubator/qpid/trunk/qpid/cpp/src: ./ qpid/broker/
tests/
Author: aconway
Date: Tue Jul 15 07:59:37 2008
New Revision: 676932
URL: http://svn.apache.org/viewvc?rev=676932&view=rev
Log:
Switched from shared_ptr to intrusive_ptr and RefCounted for Broker.
Modified:
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/BrokerSingleton.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/BrokerSingleton.h
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SignalHandler.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SignalHandler.h
incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp
incubator/qpid/trunk/qpid/cpp/src/tests/BrokerFixture.h
incubator/qpid/trunk/qpid/cpp/src/tests/ForkedBroker.h
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp?rev=676932&r1=676931&r2=676932&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp Tue Jul 15 07:59:37 2008
@@ -240,16 +240,16 @@
}
-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)
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h?rev=676932&r1=676931&r2=676932&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h Tue Jul 15 07:59:37 2008
@@ -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 @@
* A broker instance.
*/
class Broker : public sys::Runnable, public Plugin::Target,
- public management::Manageable
+ public management::Manageable, public RefCounted
{
public:
@@ -89,8 +91,8 @@
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
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/BrokerSingleton.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/BrokerSingleton.cpp?rev=676932&r1=676931&r2=676932&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/BrokerSingleton.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/BrokerSingleton.cpp Tue Jul 15 07:59:37 2008
@@ -24,13 +24,13 @@
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
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/BrokerSingleton.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/BrokerSingleton.h?rev=676932&r1=676931&r2=676932&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/BrokerSingleton.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/BrokerSingleton.h Tue Jul 15 07:59:37 2008
@@ -36,13 +36,13 @@
*
* 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
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SignalHandler.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SignalHandler.cpp?rev=676932&r1=676931&r2=676932&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SignalHandler.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SignalHandler.cpp Tue Jul 15 07:59:37 2008
@@ -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::shutdownHandler(int) {
if (broker.get()) {
broker->shutdown();
- broker.reset();
+ broker = 0; // Release the broker reference.
}
}
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SignalHandler.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SignalHandler.h?rev=676932&r1=676931&r2=676932&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SignalHandler.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SignalHandler.h Tue Jul 15 07:59:37 2008
@@ -22,7 +22,7 @@
*
*/
-#include <boost/shared_ptr.hpp>
+#include <boost/intrusive_ptr.hpp>
namespace qpid {
namespace broker {
@@ -36,11 +36,11 @@
{
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
Modified: incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp?rev=676932&r1=676931&r2=676932&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp Tue Jul 15 07:59:37 2008
@@ -142,7 +142,7 @@
/** Code for forked child process */
void child() {
- shared_ptr<Broker> brokerPtr(new Broker(options->broker));
+ boost::intrusive_ptr<Broker> brokerPtr(new Broker(options->broker));
broker::SignalHandler::setBroker(brokerPtr);
uint16_t port=brokerPtr->getPort();
ready(port); // Notify parent.
@@ -244,7 +244,7 @@
d.fork(); // Broker is stared in QpiddDaemon::child()
}
else { // Non-daemon broker.
- shared_ptr<Broker> brokerPtr(new Broker(options->broker));
+ boost::intrusive_ptr<Broker> brokerPtr(new Broker(options->broker));
broker::SignalHandler::setBroker(brokerPtr);
if (options->broker.port == 0)
cout << uint16_t(brokerPtr->getPort()) << endl;
Modified: incubator/qpid/trunk/qpid/cpp/src/tests/BrokerFixture.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/tests/BrokerFixture.h?rev=676932&r1=676931&r2=676932&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/tests/BrokerFixture.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/tests/BrokerFixture.h Tue Jul 15 07:59:37 2008
@@ -36,7 +36,7 @@
*/
struct BrokerFixture : private boost::noncopyable {
typedef qpid::broker::Broker Broker;
- typedef boost::shared_ptr<Broker> BrokerPtr;
+ typedef boost::intrusive_ptr<Broker> BrokerPtr;
BrokerPtr broker;
qpid::sys::Thread brokerThread;
Modified: incubator/qpid/trunk/qpid/cpp/src/tests/ForkedBroker.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/tests/ForkedBroker.h?rev=676932&r1=676931&r2=676932&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/tests/ForkedBroker.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/tests/ForkedBroker.h Tue Jul 15 07:59:37 2008
@@ -91,7 +91,7 @@
prefix += boost::lexical_cast<std::string>(long(getpid()));
qpid::log::Logger::instance().setPrefix(prefix);
opts.port = 0;
- boost::shared_ptr<qpid::broker::Broker> broker(new qpid::broker::Broker(opts));
+ boost::intrusive_ptr<qpid::broker::Broker> broker(new qpid::broker::Broker(opts));
qpid::broker::SignalHandler::setBroker(broker);
QPID_LOG(info, "ForkedBroker started on " << broker->getPort());
ready(boost::lexical_cast<std::string>(broker->getPort())); // Notify parent.
@@ -99,8 +99,8 @@
QPID_LOG(notice, "ForkedBroker exiting.");
// Force exit in the child process, otherwise we will try to
- // carry with parent tests.
- broker.reset(); // Run broker dtor before we exit.
+ // carry with parent tests.
+ broker = 0; // Run broker dtor before we exit.
exit(0);
}