diff options
Diffstat (limited to 'cpp/src/qpid/broker')
| -rw-r--r-- | cpp/src/qpid/broker/SessionHandlerImpl.cpp | 9 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/SessionHandlerImpl.h | 20 |
2 files changed, 11 insertions, 18 deletions
diff --git a/cpp/src/qpid/broker/SessionHandlerImpl.cpp b/cpp/src/qpid/broker/SessionHandlerImpl.cpp index 157fca5acb..0713b84164 100644 --- a/cpp/src/qpid/broker/SessionHandlerImpl.cpp +++ b/cpp/src/qpid/broker/SessionHandlerImpl.cpp @@ -48,14 +48,7 @@ SessionHandlerImpl::SessionHandlerImpl(SessionContext* _context, framemax(65536), heartbeat(0) {} -SessionHandlerImpl::~SessionHandlerImpl(){ - // TODO aconway 2006-09-07: Should be auto_ptr or plain members. - delete channelHandler; - delete connectionHandler; - delete basicHandler; - delete exchangeHandler; - delete queueHandler; -} +SessionHandlerImpl::~SessionHandlerImpl(){} Channel* SessionHandlerImpl::getChannel(u_int16_t channel){ channel_iterator i = channels.find(channel); diff --git a/cpp/src/qpid/broker/SessionHandlerImpl.h b/cpp/src/qpid/broker/SessionHandlerImpl.h index 4504541623..afaae74d97 100644 --- a/cpp/src/qpid/broker/SessionHandlerImpl.h +++ b/cpp/src/qpid/broker/SessionHandlerImpl.h @@ -71,11 +71,11 @@ class SessionHandlerImpl : public virtual qpid::io::SessionHandler, AutoDelete* const cleaner; const u_int32_t timeout;//timeout for auto-deleted queues (in ms) - ConnectionHandler* connectionHandler; - ChannelHandler* channelHandler; - BasicHandler* basicHandler; - ExchangeHandler* exchangeHandler; - QueueHandler* queueHandler; + std::auto_ptr<ConnectionHandler> connectionHandler; + std::auto_ptr<ChannelHandler> channelHandler; + std::auto_ptr<BasicHandler> basicHandler; + std::auto_ptr<ExchangeHandler> exchangeHandler; + std::auto_ptr<QueueHandler> queueHandler; std::map<u_int16_t, Channel*> channels; std::vector<Queue::shared_ptr> exclusiveQueues; @@ -212,11 +212,11 @@ class SessionHandlerImpl : public virtual qpid::io::SessionHandler, virtual ~BasicHandlerImpl(){} }; - inline virtual ChannelHandler* getChannelHandler(){ return channelHandler; } - inline virtual ConnectionHandler* getConnectionHandler(){ return connectionHandler; } - inline virtual BasicHandler* getBasicHandler(){ return basicHandler; } - inline virtual ExchangeHandler* getExchangeHandler(){ return exchangeHandler; } - inline virtual QueueHandler* getQueueHandler(){ return queueHandler; } + inline virtual ChannelHandler* getChannelHandler(){ return channelHandler.get(); } + inline virtual ConnectionHandler* getConnectionHandler(){ return connectionHandler.get(); } + inline virtual BasicHandler* getBasicHandler(){ return basicHandler.get(); } + inline virtual ExchangeHandler* getExchangeHandler(){ return exchangeHandler.get(); } + inline virtual QueueHandler* getQueueHandler(){ return queueHandler.get(); } inline virtual AccessHandler* getAccessHandler(){ return 0; } inline virtual FileHandler* getFileHandler(){ return 0; } |
