activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tab...@apache.org
Subject svn commit: r739131 - /activemq/activemq-cpp/trunk/src/main/activemq/core/
Date Fri, 30 Jan 2009 01:36:27 GMT
Author: tabish
Date: Fri Jan 30 01:36:26 2009
New Revision: 739131

URL: http://svn.apache.org/viewvc?rev=739131&view=rev
Log:
https://issues.apache.org/activemq/browse/AMQCPP-100

Additional refinements in the Core classes.

Modified:
    activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConnection.cpp
    activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConnection.h
    activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConsumer.cpp
    activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConsumer.h
    activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQProducer.cpp
    activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQProducer.h
    activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSession.cpp
    activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSession.h
    activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSessionExecutor.cpp
    activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQTransactionContext.cpp
    activemq/activemq-cpp/trunk/src/main/activemq/core/DispatchData.h

Modified: activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConnection.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConnection.cpp?rev=739131&r1=739130&r2=739131&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConnection.cpp (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConnection.cpp Fri Jan 30 01:36:26
2009
@@ -89,21 +89,21 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-void ActiveMQConnection::addDispatcher( commands::ConsumerInfo* consumer,
-    Dispatcher* dispatcher ) {
+void ActiveMQConnection::addDispatcher(
+    const commands::ConsumerId& consumer, Dispatcher* dispatcher ) {
 
     // Add the consumer to the map.
     synchronized( &dispatchers ) {
-        dispatchers.setValue( consumer->getConsumerId()->getValue(), dispatcher );
+        dispatchers.setValue( consumer, dispatcher );
     }
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-void ActiveMQConnection::removeDispatcher( const commands::ConsumerInfo* consumer ) {
+void ActiveMQConnection::removeDispatcher( const commands::ConsumerId& consumer ) {
 
     // Remove the consumer from the map.
     synchronized( &dispatchers ) {
-        dispatchers.remove( consumer->getConsumerId()->getValue() );
+        dispatchers.remove( consumer );
     }
 }
 
@@ -180,8 +180,7 @@
 
         // Add this producer from the set of active consumer.
         synchronized( &activeProducers ) {
-            activeProducers.setValue(
-                producer->getProducerInfo()->getProducerId()->getValue(), producer
);
+            activeProducers.setValue( producer->getProducerId(), producer );
         }
     }
     AMQ_CATCH_RETHROW( ActiveMQException )
@@ -197,8 +196,7 @@
 
         // Remove this producer from the set of active consumer.
         synchronized( &activeProducers ) {
-            activeProducers.remove(
-                producer->getProducerInfo()->getProducerId()->getValue() );
+            activeProducers.remove( producer->getProducerId() );
         }
     }
     AMQ_CATCH_RETHROW( ActiveMQException )
@@ -460,7 +458,7 @@
             Dispatcher* dispatcher = NULL;
             synchronized( &dispatchers ) {
 
-                dispatcher = dispatchers.getValue( dispatch->getConsumerId()->getValue()
);
+                dispatcher = dispatchers.getValue( *( dispatch->getConsumerId() ) );
 
                 // If we have no registered dispatcher, the consumer was probably
                 // just closed.  Just delete the message.
@@ -469,7 +467,7 @@
                 } else {
 
                     // Dispatch the message.
-                    DispatchData data( dispatch->getConsumerId(), message );
+                    DispatchData data( *( dispatch->getConsumerId() ), message );
                     dispatcher->dispatch( data );
                 }
             }
@@ -491,7 +489,7 @@
             // Get the consumer info object for this consumer.
             ActiveMQProducer* producer = NULL;
             synchronized( &this->activeProducers ) {
-                producer = this->activeProducers.getValue( producerAck->getProducerId()->getValue()
);
+                producer = this->activeProducers.getValue( *( producerAck->getProducerId()
) );
                 if( producer != NULL ){
                     producer->onProducerAck( *producerAck );
                 }
@@ -657,19 +655,19 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-const commands::ConnectionInfo* ActiveMQConnection::getConnectionInfo() const
+const commands::ConnectionInfo& ActiveMQConnection::getConnectionInfo() const
     throw( exceptions::ActiveMQException ) {
 
     enforceConnected();
 
-    return &this->connectionInfo;
+    return this->connectionInfo;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-const commands::ConnectionId* ActiveMQConnection::getConnectionId() const
+const commands::ConnectionId& ActiveMQConnection::getConnectionId() const
     throw( exceptions::ActiveMQException ) {
 
     enforceConnected();
 
-    return this->connectionInfo.getConnectionId();
+    return *( this->connectionInfo.getConnectionId() );
 }

Modified: activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConnection.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConnection.h?rev=739131&r1=739130&r2=739131&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConnection.h (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConnection.h Fri Jan 30 01:36:26
2009
@@ -28,6 +28,7 @@
 #include <activemq/commands/BrokerInfo.h>
 #include <activemq/commands/ConnectionInfo.h>
 #include <activemq/commands/ConsumerInfo.h>
+#include <activemq/commands/ProducerInfo.h>
 #include <activemq/commands/LocalTransactionId.h>
 #include <activemq/commands/WireFormatInfo.h>
 #include <activemq/exceptions/ActiveMQException.h>
@@ -80,12 +81,12 @@
         /**
          * Map of message dispatchers indexed by consumer id.
          */
-        decaf::util::Map< long long, Dispatcher* > dispatchers;
+        decaf::util::Map< commands::ConsumerId, Dispatcher* > dispatchers;
 
         /**
          * Map of message dispatchers indexed by consumer id.
          */
-        decaf::util::Map< long long, ActiveMQProducer* > activeProducers;
+        decaf::util::Map< commands::ProducerId, ActiveMQProducer* > activeProducers;
 
         /**
          * Maintain the set of all active sessions.
@@ -151,13 +152,13 @@
          * @param consumer - The consumer for which to register a dispatcher.
          * @param dispatcher - The dispatcher to handle incoming messages for the consumer.
          */
-        virtual void addDispatcher( commands::ConsumerInfo* consumer, Dispatcher* dispatcher
);
+        virtual void addDispatcher( const commands::ConsumerId& consumer, Dispatcher*
dispatcher );
 
         /**
          * Removes the dispatcher for a consumer.
          * @param consumer - The consumer for which to remove the dispatcher.
          */
-        virtual void removeDispatcher( const commands::ConsumerInfo* consumer );
+        virtual void removeDispatcher( const commands::ConsumerId& consumer );
 
         /**
          * If supported sends a message pull request to the service provider asking
@@ -324,14 +325,14 @@
          * Gets the ConnectionInfo for this Object, if the Connection is not open
          * than this method throws an exception
          */
-        const commands::ConnectionInfo* getConnectionInfo() const
+        const commands::ConnectionInfo& getConnectionInfo() const
             throw( exceptions::ActiveMQException );
 
         /**
          * Gets the ConnectionId for this Object, if the Connection is not open
          * than this method throws an exception
          */
-        const commands::ConnectionId* getConnectionId() const
+        const commands::ConnectionId& getConnectionId() const
             throw( exceptions::ActiveMQException );
 
         /**

Modified: activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConsumer.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConsumer.cpp?rev=739131&r1=739130&r2=739131&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConsumer.cpp (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConsumer.cpp Fri Jan 30 01:36:26
2009
@@ -61,6 +61,9 @@
     this->consumerInfo.reset( consumerInfo );
     this->listener = NULL;
     this->closed = false;
+
+    // Send our info to the Broker.
+    this->session->syncRequest( this->consumerInfo.get() );
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -83,7 +86,7 @@
 
             // Remove this Consumer from the Connections set of Dispatchers and then
             // remove it from the Broker.
-            this->session->disposeOf( this->getConsumerId() );
+            this->session->disposeOf( this->consumerInfo->getConsumerId() );
 
             this->closed = true;
 
@@ -543,7 +546,7 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-void ActiveMQConsumer::checkClosed() throw( exceptions::ActiveMQException ) {
+void ActiveMQConsumer::checkClosed() const throw( exceptions::ActiveMQException ) {
     if( this->isClosed() ) {
         throw ActiveMQException(
             __FILE__, __LINE__,

Modified: activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConsumer.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConsumer.h?rev=739131&r1=739130&r2=739131&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConsumer.h (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQConsumer.h Fri Jan 30 01:36:26
2009
@@ -180,22 +180,20 @@
 
         /**
          * Get the Consumer information for this consumer
-         * @return Pointer to a Consumer Info Object
+         * @return Reference to a Consumer Info Object
          */
-        commands::ConsumerInfo* getConsumerInfo() {
-            return consumerInfo.get();
+        const commands::ConsumerInfo& getConsumerInfo() const {
+            this->checkClosed();
+            return *( this->consumerInfo );
         }
 
         /**
          * Get the Consumer Id for this consumer
-         * @return Pointer to a Consumer Id Object
+         * @return Reference to a Consumer Id Object
          */
-        commands::ConsumerId* getConsumerId() {
-            if( this->isClosed() ) {
-                return NULL;
-            }
-
-            return consumerInfo->getConsumerId();
+        const commands::ConsumerId& getConsumerId() const {
+            this->checkClosed();
+            return *( this->consumerInfo->getConsumerId() );
         }
 
         /**
@@ -256,7 +254,7 @@
             throw ( exceptions::ActiveMQException );
 
         // Checks for the closed state and throws if so.
-        void checkClosed() throw( exceptions::ActiveMQException );
+        void checkClosed() const throw( exceptions::ActiveMQException );
 
     };
 

Modified: activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQProducer.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQProducer.cpp?rev=739131&r1=739130&r2=739131&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQProducer.cpp (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQProducer.cpp Fri Jan 30 01:36:26
2009
@@ -54,6 +54,8 @@
     this->disableMessageId = false;
     this->defaultPriority = 4;
     this->defaultTimeToLive = 0;
+
+    this->session->syncRequest( this->producerInfo.get() );
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -200,7 +202,7 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-void ActiveMQProducer::checkClosed() throw( exceptions::ActiveMQException ) {
+void ActiveMQProducer::checkClosed() const throw( exceptions::ActiveMQException ) {
     if( closed ) {
         throw ActiveMQException(
             __FILE__, __LINE__,

Modified: activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQProducer.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQProducer.h?rev=739131&r1=739130&r2=739131&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQProducer.h (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQProducer.h Fri Jan 30 01:36:26
2009
@@ -251,22 +251,20 @@
 
         /**
          * Retries this object ProducerInfo pointer
-         * @return ProducerInfo pointer
+         * @return ProducerInfo Reference
          */
-        virtual commands::ProducerInfo* getProducerInfo(){
-            return this->producerInfo.get();
+        const commands::ProducerInfo& getProducerInfo() const {
+            this->checkClosed();
+            return *( this->producerInfo );
         }
 
         /**
          * Retries this object ProducerId or NULL if closed.
-         * @return ProducerId pointer
+         * @return ProducerId Reference
          */
-        virtual commands::ProducerId* getProducerId(){
-            if( this->isClosed() ) {
-                return NULL;
-            }
-
-            return this->producerInfo->getProducerId();
+        commands::ProducerId& getProducerId() const {
+            this->checkClosed();
+            return *( this->producerInfo->getProducerId() );
         }
 
         /**
@@ -278,7 +276,7 @@
    private:
 
        // Checks for the closed state and throws if so.
-       void checkClosed() throw( exceptions::ActiveMQException );
+       void checkClosed() const throw( exceptions::ActiveMQException );
 
    };
 

Modified: activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSession.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSession.cpp?rev=739131&r1=739130&r2=739131&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSession.cpp (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSession.cpp Fri Jan 30 01:36:26
2009
@@ -263,19 +263,15 @@
         // Register this as a message dispatcher for the consumer since we
         // could start receiving messages from the broker right away once we
         // send the ConsumerInfo command.
-        this->connection->addDispatcher( consumerInfo.get(), this );
+        this->connection->addDispatcher( *( consumerInfo->getConsumerId() ), this
);
 
         // Create the consumer instance.
         std::auto_ptr<ActiveMQConsumer> consumer(
             new ActiveMQConsumer( consumerInfo.release(), this, this->transaction.get()
) );
 
-        // Send the message to the broker.
-        this->connection->syncRequest( consumer->getConsumerInfo() );
-
         // Add the consumer to the map.
         synchronized( &this->consumers ) {
-            this->consumers.setValue(
-                consumer->getConsumerInfo()->getConsumerId()->getValue(), consumer.get()
);
+            this->consumers.setValue( consumer->getConsumerId(), consumer.get() );
         }
 
         return consumer.release();
@@ -309,19 +305,15 @@
         // Register this as a message dispatcher for the consumer since we
         // could start receiving messages from the broker right away once we
         // send the ConsumerInfo command.
-        this->connection->addDispatcher( consumerInfo.get(), this );
+        this->connection->addDispatcher( *( consumerInfo->getConsumerId() ), this
);
 
         // Create the consumer instance.
         std::auto_ptr<ActiveMQConsumer> consumer(
             new ActiveMQConsumer( consumerInfo.release(), this, this->transaction.get()
) );
 
-        // Send the message to the broker.
-        this->connection->syncRequest( consumer->getConsumerInfo() );
-
         // Add the consumer to the map.
         synchronized( &this->consumers ) {
-            this->consumers.setValue(
-                consumer->getConsumerInfo()->getConsumerId()->getValue(), consumer.get()
);
+            this->consumers.setValue( consumer->getConsumerId(), consumer.get() );
         }
 
         return consumer.release();
@@ -341,8 +333,8 @@
         this->checkClosed();
 
         std::auto_ptr<commands::ProducerId> producerId( new commands::ProducerId()
);
-        producerId->setConnectionId( this->getSessionInfo()->getSessionId()->getConnectionId()
);
-        producerId->setSessionId( this->getSessionInfo()->getSessionId()->getValue()
);
+        producerId->setConnectionId( this->sessionInfo->getSessionId()->getConnectionId()
);
+        producerId->setSessionId( this->sessionInfo->getSessionId()->getValue()
);
         producerId->setValue( this->connection->getNextProducerId() );
 
         std::auto_ptr<commands::ProducerInfo> producerInfo( new commands::ProducerInfo()
);
@@ -376,13 +368,9 @@
 
         producer->setSendTimeout( this->connection->getSendTimeout() );
 
-        // Send the message to the broker.
-        this->connection->syncRequest( producer->getProducerInfo() );
-
         synchronized( &this->producers ) {
             // Place the Producer into the Map.
-            this->producers.setValue(
-                producer->getProducerInfo()->getProducerId()->getValue(), producer.get()
);
+            this->producers.setValue( producer->getProducerId(), producer.get() );
         }
 
         // Add to the Connections list
@@ -593,12 +581,12 @@
         // flag.  Not adding a message ID will cause an NPE at the broker.
         commands::MessageId* id = new commands::MessageId();
         id->setProducerId(
-            producer->getProducerInfo()->getProducerId()->cloneDataStructure() );
+            producer->getProducerId().cloneDataStructure() );
         id->setProducerSequenceId( this->connection->getNextProducerSequenceId()
);
 
         amqMessage->setMessageId( id );
         amqMessage->setProducerId(
-            producer->getProducerInfo()->getProducerId()->cloneDataStructure() );
+            producer->getProducerId().cloneDataStructure() );
 
         if( this->getAcknowledgeMode() == cms::Session::SESSION_TRANSACTED ) {
 
@@ -659,9 +647,9 @@
             new commands::RemoveSubscriptionInfo() );
 
         rsi->setConnectionId(
-            this->connection->getConnectionInfo()->getConnectionId()->cloneDataStructure()
);
+            this->connection->getConnectionId().cloneDataStructure() );
         rsi->setSubcriptionName( name );
-        rsi->setClientId( this->connection->getConnectionInfo()->getClientId()
);
+        rsi->setClientId( this->connection->getConnectionInfo().getClientId() );
 
         // Send the message to the broker.
         this->connection->syncRequest( rsi.get() );
@@ -716,7 +704,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 bool ActiveMQSession::isStarted() const {
 
-    if( this->executor.get() != NULL ) {
+    if( this->executor.get() == NULL ) {
         return false;
     }
 
@@ -735,7 +723,7 @@
         std::auto_ptr<commands::ConsumerId> consumerId( new commands::ConsumerId()
);
 
         consumerId->setConnectionId(
-            this->connection->getConnectionId()->getValue() );
+            this->connection->getConnectionId().getValue() );
         consumerId->setSessionId( this->sessionInfo->getSessionId()->getValue()
);
         consumerId->setValue( this->connection->getNextSessionId() );
 
@@ -867,7 +855,7 @@
     try {
 
         commands::DestinationInfo command;
-        command.setConnectionId( this->connection->getConnectionId()->cloneDataStructure()
);
+        command.setConnectionId( this->connection->getConnectionId().cloneDataStructure()
);
         command.setOperationType( ActiveMQConstants::DESTINATION_ADD_OPERATION );
         command.setDestination( tempDestination->cloneDataStructure() );
 
@@ -891,7 +879,7 @@
 
         commands::DestinationInfo command;
 
-        command.setConnectionId( this->connection->getConnectionId()->cloneDataStructure()
);
+        command.setConnectionId( this->connection->getConnectionId().cloneDataStructure()
);
         command.setOperationType( ActiveMQConstants::DESTINATION_REMOVE_OPERATION );
         command.setDestination( tempDestination->cloneDataStructure() );
 
@@ -908,7 +896,7 @@
     throw ( activemq::exceptions::ActiveMQException )
 {
     try {
-        return this->connection->getConnectionId()->getValue() + ":" +
+        return this->connection->getConnectionId().getValue() + ":" +
                Long::toString( this->connection->getNextTempDestinationId() );
     }
     AMQ_CATCH_RETHROW( activemq::exceptions::ActiveMQException )
@@ -923,7 +911,7 @@
     try{
         std::auto_ptr<commands::LocalTransactionId> id( new commands::LocalTransactionId()
);
 
-        id->setConnectionId( this->connection->getConnectionId()->cloneDataStructure()
);
+        id->setConnectionId( this->connection->getConnectionId().cloneDataStructure()
);
         id->setValue( this->connection->getNextTransactionId() );
 
         return id.release();
@@ -960,7 +948,7 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-void ActiveMQSession::checkClosed() throw( exceptions::ActiveMQException ) {
+void ActiveMQSession::checkClosed() const throw( exceptions::ActiveMQException ) {
     if( closed ) {
         throw ActiveMQException(
             __FILE__, __LINE__,
@@ -978,7 +966,7 @@
 
         synchronized( &this->consumers ) {
 
-            if( this->consumers.containsKey( id->getValue() ) ) {
+            if( this->consumers.containsKey( *id ) ) {
 
                 // If the executor thread is currently running, stop it.
                 bool wasStarted = isStarted();
@@ -986,11 +974,11 @@
                     stop();
                 }
 
-                ActiveMQConsumer* consumer = this->consumers.getValue( id->getValue()
);
-                this->connection->removeDispatcher( consumer->getConsumerInfo()
);
+                ActiveMQConsumer* consumer = this->consumers.getValue( *id );
+                this->connection->removeDispatcher( consumer->getConsumerId() );
                 this->connection->disposeOf( id );
 
-                this->consumers.remove( id->getValue() );
+                this->consumers.remove( *id );
 
                 //TODO
 //              // Remove this consumer from the Transaction if we are transacted
@@ -1032,13 +1020,13 @@
 
         synchronized( &this->producers ) {
 
-            if( this->producers.containsKey( id->getValue() ) ) {
+            if( this->producers.containsKey( *id ) ) {
 
-                ActiveMQProducer* producer = this->producers.getValue( id->getValue()
);
+                ActiveMQProducer* producer = this->producers.getValue( *id );
                 this->connection->removeProducer( producer );
                 this->connection->disposeOf( id );
 
-                this->producers.remove( id->getValue() );
+                this->producers.remove( *id );
             }
         }
     }

Modified: activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSession.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSession.h?rev=739131&r1=739130&r2=739131&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSession.h (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSession.h Fri Jan 30 01:36:26
2009
@@ -77,12 +77,12 @@
         /**
          * Map of consumers.
          */
-        decaf::util::Map<long long, ActiveMQConsumer*> consumers;
+        decaf::util::Map< commands::ConsumerId, ActiveMQConsumer*> consumers;
 
         /**
          * Map of producers.
          */
-        decaf::util::Map<long long, ActiveMQProducer*> producers;
+        decaf::util::Map< commands::ProducerId, ActiveMQProducer*> producers;
 
         /**
          * Sends incoming messages to the registered consumers.
@@ -103,7 +103,7 @@
 
         virtual ~ActiveMQSession();
 
-        decaf::util::Map<long long, ActiveMQConsumer*>& getConsumers() {
+        decaf::util::Map< commands::ConsumerId, ActiveMQConsumer*>& getConsumers()
{
             return consumers;
         }
 
@@ -375,11 +375,22 @@
 
         /**
          * Gets the Session Information object for this session, if the
-         * session is closed than this returns null
-         * @return SessionInfo Pointer
+         * session is closed than this method throws an exception.
+         * @return SessionInfo Reference
          */
-        commands::SessionInfo* getSessionInfo() {
-            return this->sessionInfo.get();
+        const commands::SessionInfo& getSessionInfo() const {
+            this->checkClosed();
+            return *( this->sessionInfo );
+        }
+
+        /**
+         * Gets the Session Id object for this session, if the session
+         * is closed than this method throws an exception.
+         * @return SessionId Reference
+         */
+        const commands::SessionId& getSessionId() const {
+            this->checkClosed();
+            return *( this->sessionInfo->getSessionId() );
         }
 
         /**
@@ -428,7 +439,7 @@
    private:
 
        // Checks for the closed state and throws if so.
-       void checkClosed() throw( exceptions::ActiveMQException );
+       void checkClosed() const throw( exceptions::ActiveMQException );
 
        // Performs the work of creating and configuring a valid Consumer Info, this
        // can be used both by the normal createConsumer call and by a createDurableConsumer

Modified: activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSessionExecutor.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSessionExecutor.cpp?rev=739131&r1=739130&r2=739131&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSessionExecutor.cpp (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQSessionExecutor.cpp Fri Jan
30 01:36:26 2009
@@ -94,17 +94,15 @@
 {
     vector<ActiveMQMessage*> retVal;
 
-    const commands::ConsumerInfo* consumerInfo = consumer->getConsumerInfo();
-
     synchronized( &mutex ) {
 
         list<DispatchData>::iterator iter = messageQueue.begin();
         while( iter != messageQueue.end() ) {
             list<DispatchData>::iterator currentIter = iter;
             DispatchData& dispatchData = *iter++;
-            if( consumerInfo->getConsumerId() == dispatchData.getConsumerId() ) {
+            if( consumer->getConsumerId() == dispatchData.getConsumerId() ) {
                 retVal.push_back( dispatchData.getMessage() );
-                messageQueue.erase(currentIter);
+                messageQueue.erase( currentIter );
             }
         }
     }
@@ -169,10 +167,10 @@
     try {
 
         ActiveMQConsumer* consumer = NULL;
-        Map<long long, ActiveMQConsumer*>& consumers = session->getConsumers();
+        Map< commands::ConsumerId, ActiveMQConsumer*>& consumers = session->getConsumers();
 
         synchronized( &consumers ) {
-            consumer = consumers.getValue( data.getConsumerId()->getValue() );
+            consumer = consumers.getValue( data.getConsumerId() );
         }
 
         // If the consumer is not available, just delete the message.

Modified: activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQTransactionContext.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQTransactionContext.cpp?rev=739131&r1=739130&r2=739131&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQTransactionContext.cpp (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/core/ActiveMQTransactionContext.cpp Fri
Jan 30 01:36:26 2009
@@ -208,7 +208,7 @@
         this->transactionInfo.reset( new commands::TransactionInfo() );
 
         this->transactionInfo->setConnectionId(
-            this->connection->getConnectionId()->cloneDataStructure() );
+            this->connection->getConnectionId().cloneDataStructure() );
         this->transactionInfo->setTransactionId( createLocalTransactionId() );
         this->transactionInfo->setType( ActiveMQConstants::TRANSACTION_STATE_BEGIN
);
 
@@ -227,7 +227,7 @@
 
         std::auto_ptr<commands::LocalTransactionId> id( new commands::LocalTransactionId()
);
 
-        id->setConnectionId( this->connection->getConnectionId()->cloneDataStructure()
);
+        id->setConnectionId( this->connection->getConnectionId().cloneDataStructure()
);
         id->setValue( this->connection->getNextTransactionId() );
 
         return id.release();

Modified: activemq/activemq-cpp/trunk/src/main/activemq/core/DispatchData.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/core/DispatchData.h?rev=739131&r1=739130&r2=739131&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/core/DispatchData.h (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/core/DispatchData.h Fri Jan 30 01:36:26
2009
@@ -34,17 +34,16 @@
     class AMQCPP_API DispatchData {
     private:
 
-        commands::ConsumerId* consumerId;
+        commands::ConsumerId consumerId;
         ActiveMQMessage* message;
 
     public:
 
         DispatchData(){
-            consumerId = NULL;
             message = NULL;
         }
 
-        DispatchData( commands::ConsumerId* consumer, ActiveMQMessage* message ) {
+        DispatchData( const commands::ConsumerId& consumer, ActiveMQMessage* message
) {
             this->consumerId = consumer;
             this->message = message;
         }
@@ -59,7 +58,7 @@
             return *this;
         }
 
-        commands::ConsumerId* getConsumerId() {
+        const commands::ConsumerId& getConsumerId() {
             return consumerId;
         }
 



Mime
View raw message