You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2006/07/28 10:22:55 UTC

svn commit: r426431 [3/14] - in /incubator/activemq/branches/activemq-4.0: activemq-core/src/gram/script/ activemq-core/src/main/java/org/apache/activemq/kaha/impl/ activemq-core/src/main/java/org/apache/activemq/openwire/v1/ activemq-core/src/test/jav...

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Connection.cpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Connection.cpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Connection.cpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Connection.cpp Fri Jul 28 01:22:48 2006
@@ -1,382 +1,382 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#include "activemq/Connection.hpp"
-#include "activemq/Session.hpp"
-
-using namespace apache::activemq;
-
-
-// --- Constructors -------------------------------------------------
-
-/*
- *
- */
-Connection::Connection(p<ITransport> transport, p<ConnectionInfo> connectionInfo)
-{
-    this->transport               = transport ;
-    this->connectionInfo          = connectionInfo ;
-    this->acknowledgementMode     = AutoAckMode ;
-    this->connected               = false ;
-    this->closed                  = false ;
-    this->brokerInfo              = NULL ;
-    this->brokerWireFormat        = NULL ;
-    this->sessionCounter          = 0 ;
-    this->tempDestinationCounter  = 0 ;
-    this->localTransactionCounter = 0 ;
-
-    // Hook up as a command listener and start dispatching
-    transport->setCommandListener(smartify(this)) ;
-    transport->start() ;
-}
-
-/*
- *
- */
-Connection::~Connection()
-{
-    // Make sure connection is closed
-    close() ;
-}
-
-
-// --- Attribute methods --------------------------------------------
-
-/*
- *
- */
-void Connection::setExceptionListener(p<IExceptionListener> listener)
-{
-    this->listener = listener ;
-}
-
-/*
- *
- */
-p<IExceptionListener> Connection::getExceptionListener()
-{
-    return listener ;
-}
-
-/*
- *
- */
-p<ITransport> Connection::getTransport()
-{
-    return transport ;
-}
-
-/*
- *
- */
-void Connection::setTransport(p<ITransport> transport)
-{
-    this->transport = transport ;
-}
-
-/*
- *
- */
-p<string> Connection::getClientId()
-{
-    return connectionInfo->getClientId() ;
-}
-
-/*
- *
- */
-void Connection::setClientId(const char* value) throw (CmsException)
-{
-    if( connected )
-        throw CmsException("You cannot change the client id once a connection is established") ; 
-
-    p<string> clientId = new string(value) ;
-    connectionInfo->setClientId( clientId ) ;
-}
-
-
-/*
- *
- */
-p<BrokerInfo> Connection::getBrokerInfo()
-{
-    return brokerInfo ;
-}
-
-/*
- *
- */
-p<WireFormatInfo> Connection::getBrokerWireFormat()
-{
-    return brokerWireFormat ;
-}
-
-/*
- *
- */
-AcknowledgementMode Connection::getAcknowledgementMode()
-{
-    return acknowledgementMode ;
-}
-
-/*
- *
- */
-void Connection::setAcknowledgementMode(AcknowledgementMode ackMode)
-{
-    acknowledgementMode = ackMode ;
-}
-
-/*
- *
- */
-p<ConnectionId> Connection::getConnectionId()
-{
-    return connectionInfo->getConnectionId() ;
-}
-
-
-// --- Operation methods --------------------------------------------
-
-/*
- *
- */
-void Connection::close()
-{
-    if( !closed )
-    {
-        list< p<ISession> >::iterator sessionIter ;
-
-        // Iterate through all sessions and close them down
-        for( sessionIter = sessions.begin() ;
-             sessionIter != sessions.end() ;
-             sessionIter++ )
-        {
-            (*sessionIter)->close() ;
-        }
-        // Empty session list
-        sessions.clear() ;
-
-        // Remove connection from broker
-        disposeOf( getConnectionId() ) ;
-
-        // Finally, transmit a shutdown command to broker
-        transport->oneway( new ShutdownInfo() ) ;
-        closed = true ;
-    }
-}
-
-/*
- *
- */
-p<ISession> Connection::createSession() throw(CmsException)
-{
-    return createSession(acknowledgementMode) ;
-}
-
-/*
- *
- */
-p<ISession> Connection::createSession(AcknowledgementMode ackMode) throw(CmsException)
-{
-    p<SessionInfo> sessionInfo = createSessionInfo( ackMode ) ;
-
-    // Send session info to broker
-    syncRequest(sessionInfo) ;
-
-    p<ISession> session = new Session(smartify(this), sessionInfo, ackMode) ;
-    sessions.push_back(session) ;
-
-    return session ;
-}
-
-/*
- * Performs a synchronous request-response with the broker.
- */
-p<Response> Connection::syncRequest(p<ICommand> command) throw(CmsException) 
-{
-    checkConnected() ;
-    
-    p<Response> response = transport->request(command) ;
-
-    if( response->getDataStructureType() == ExceptionResponse::TYPE )
-    {
-        p<ExceptionResponse> exceptionResponse = p_cast<ExceptionResponse> (response) ;
-        p<BrokerError>       brokerError = exceptionResponse->getException() ;
-        string               message ;
-
-        // Build error message
-        message.assign("Request failed: ") ;
-        message.append( brokerError->getExceptionClass()->c_str() ) ;
-        message.append(", ") ;
-        message.append( brokerError->getStackTrace()->c_str() ) ;
-
-        // TODO: Change to CMSException()
-        throw CmsException( message.c_str() ) ; 
-    }
-    return response ;
-}
-
-/*
- *
- */
-void Connection::oneway(p<ICommand> command) throw(CmsException)
-{
-    checkConnected() ;
-    transport->oneway(command) ;
-}
-
-/*
- *
- */
-void Connection::disposeOf(p<IDataStructure> dataStructure) throw(CmsException)
-{
-    p<RemoveInfo> command = new RemoveInfo() ;
-    command->setObjectId( dataStructure ) ;
-    syncRequest(command) ;
-}
-
-/*
- * Creates a new temporary destination name.
- */
-p<string> Connection::createTemporaryDestinationName()
-{
-    p<string> name = new string() ;
-    char*     buffer = new char[15] ;
-
-    {
-        LOCKED_SCOPE( mutex );
-
-        name->assign( connectionInfo->getConnectionId()->getValue()->c_str() ) ;
-        name->append( ":" ) ;
-#ifdef unix
-        sprintf(buffer, "%lld", ++tempDestinationCounter) ;
-#else
-        sprintf(buffer, "%I64d", ++tempDestinationCounter) ;
-#endif
-        name->append( buffer ) ;
-    }
-
-    return name ;
-}
-
-/*
- * Creates a new local transaction ID.
- */
-p<LocalTransactionId> Connection::createLocalTransactionId()
-{
-    p<LocalTransactionId> id = new LocalTransactionId() ;
-
-    id->setConnectionId( getConnectionId() ) ;
-
-    {
-        LOCKED_SCOPE (mutex);
-        id->setValue( ++localTransactionCounter ) ;
-    }
-
-    return id ;
-}
-
-
-// --- Implementation methods ---------------------------------------
-
-/*
- *
- */
-p<SessionInfo> Connection::createSessionInfo(AcknowledgementMode ackMode)
-{
-    p<SessionInfo> sessionInfo = new SessionInfo() ;
-    p<SessionId>   sessionId   = new SessionId() ;
-    
-    sessionId->setConnectionId ( connectionInfo->getConnectionId()->getValue() ) ;
-
-    {
-        LOCKED_SCOPE( mutex );
-        sessionId->setValue( ++sessionCounter ) ; 
-    }
-
-    sessionInfo->setSessionId( sessionId ) ;
-    return sessionInfo ; 
-}
-
-/*
- *
- */
-void Connection::checkConnected() throw(CmsException) 
-{
-    if( closed )
-        throw ConnectionClosedException("Oops! Connection already closed.") ;
-
-    if( !connected )
-    {
-        connected = true ;
-
-        // Send the connection info and see if we get an ack/nak
-        syncRequest( connectionInfo ) ;
-    } 
-}
-
-/*
- * Handle incoming commands.
- */
-void Connection::onCommand(p<ITransport> transport, p<ICommand> command)
-{
-    if( command->getDataStructureType() == MessageDispatch::TYPE )
-    {
-        p<MessageDispatch> dispatch = p_cast<MessageDispatch> (command) ;
-        p<ConsumerId> consumerId = dispatch->getConsumerId() ;
-        p<MessageConsumer> consumer = NULL ;
-        list< p<ISession> >::const_iterator tempIter ;
-
-        // Iterate through all sessions and check if one has the consumer
-        for( tempIter = sessions.begin() ;
-             tempIter != sessions.end() ;
-             tempIter++ )
-        {
-            consumer = p_cast<Session> (*tempIter)->getConsumer(consumerId) ;
-
-            // Found a match?
-            if( consumer != NULL )
-                break ;
-        }
-        if( consumer == NULL )
-            cout << "ERROR: No such consumer active: " << consumerId->getValue() << endl ;
-        else
-        {
-            p<ActiveMQMessage> message = p_cast<ActiveMQMessage> (dispatch->getMessage()) ;
-            consumer->dispatch(message) ;
-        }
-    }
-    else if( command->getDataStructureType() == WireFormatInfo::TYPE )
-        this->brokerWireFormat = p_cast<WireFormatInfo> (command) ;
-
-    else if( command->getDataStructureType() == BrokerInfo::TYPE )
-        this->brokerInfo = p_cast<BrokerInfo> (command) ;
-
-    else
-        cout << "ERROR: Unknown command: " << command->getDataStructureType() << endl ;
-}
-
-/*
- * Handle incoming broker errors.
- */
-void Connection::onError(p<ITransport> transport, exception& error)
-{
-    if( listener != NULL )
-        this->listener->onException(error) ;
-    else
-        cout << "ERROR: Received a broker exception: " << error.what() << endl ;
-}
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#include "activemq/Connection.hpp"
+#include "activemq/Session.hpp"
+
+using namespace apache::activemq;
+
+
+// --- Constructors -------------------------------------------------
+
+/*
+ *
+ */
+Connection::Connection(p<ITransport> transport, p<ConnectionInfo> connectionInfo)
+{
+    this->transport               = transport ;
+    this->connectionInfo          = connectionInfo ;
+    this->acknowledgementMode     = AutoAckMode ;
+    this->connected               = false ;
+    this->closed                  = false ;
+    this->brokerInfo              = NULL ;
+    this->brokerWireFormat        = NULL ;
+    this->sessionCounter          = 0 ;
+    this->tempDestinationCounter  = 0 ;
+    this->localTransactionCounter = 0 ;
+
+    // Hook up as a command listener and start dispatching
+    transport->setCommandListener(smartify(this)) ;
+    transport->start() ;
+}
+
+/*
+ *
+ */
+Connection::~Connection()
+{
+    // Make sure connection is closed
+    close() ;
+}
+
+
+// --- Attribute methods --------------------------------------------
+
+/*
+ *
+ */
+void Connection::setExceptionListener(p<IExceptionListener> listener)
+{
+    this->listener = listener ;
+}
+
+/*
+ *
+ */
+p<IExceptionListener> Connection::getExceptionListener()
+{
+    return listener ;
+}
+
+/*
+ *
+ */
+p<ITransport> Connection::getTransport()
+{
+    return transport ;
+}
+
+/*
+ *
+ */
+void Connection::setTransport(p<ITransport> transport)
+{
+    this->transport = transport ;
+}
+
+/*
+ *
+ */
+p<string> Connection::getClientId()
+{
+    return connectionInfo->getClientId() ;
+}
+
+/*
+ *
+ */
+void Connection::setClientId(const char* value) throw (CmsException)
+{
+    if( connected )
+        throw CmsException("You cannot change the client id once a connection is established") ; 
+
+    p<string> clientId = new string(value) ;
+    connectionInfo->setClientId( clientId ) ;
+}
+
+
+/*
+ *
+ */
+p<BrokerInfo> Connection::getBrokerInfo()
+{
+    return brokerInfo ;
+}
+
+/*
+ *
+ */
+p<WireFormatInfo> Connection::getBrokerWireFormat()
+{
+    return brokerWireFormat ;
+}
+
+/*
+ *
+ */
+AcknowledgementMode Connection::getAcknowledgementMode()
+{
+    return acknowledgementMode ;
+}
+
+/*
+ *
+ */
+void Connection::setAcknowledgementMode(AcknowledgementMode ackMode)
+{
+    acknowledgementMode = ackMode ;
+}
+
+/*
+ *
+ */
+p<ConnectionId> Connection::getConnectionId()
+{
+    return connectionInfo->getConnectionId() ;
+}
+
+
+// --- Operation methods --------------------------------------------
+
+/*
+ *
+ */
+void Connection::close()
+{
+    if( !closed )
+    {
+        list< p<ISession> >::iterator sessionIter ;
+
+        // Iterate through all sessions and close them down
+        for( sessionIter = sessions.begin() ;
+             sessionIter != sessions.end() ;
+             sessionIter++ )
+        {
+            (*sessionIter)->close() ;
+        }
+        // Empty session list
+        sessions.clear() ;
+
+        // Remove connection from broker
+        disposeOf( getConnectionId() ) ;
+
+        // Finally, transmit a shutdown command to broker
+        transport->oneway( new ShutdownInfo() ) ;
+        closed = true ;
+    }
+}
+
+/*
+ *
+ */
+p<ISession> Connection::createSession() throw(CmsException)
+{
+    return createSession(acknowledgementMode) ;
+}
+
+/*
+ *
+ */
+p<ISession> Connection::createSession(AcknowledgementMode ackMode) throw(CmsException)
+{
+    p<SessionInfo> sessionInfo = createSessionInfo( ackMode ) ;
+
+    // Send session info to broker
+    syncRequest(sessionInfo) ;
+
+    p<ISession> session = new Session(smartify(this), sessionInfo, ackMode) ;
+    sessions.push_back(session) ;
+
+    return session ;
+}
+
+/*
+ * Performs a synchronous request-response with the broker.
+ */
+p<Response> Connection::syncRequest(p<ICommand> command) throw(CmsException) 
+{
+    checkConnected() ;
+    
+    p<Response> response = transport->request(command) ;
+
+    if( response->getDataStructureType() == ExceptionResponse::TYPE )
+    {
+        p<ExceptionResponse> exceptionResponse = p_cast<ExceptionResponse> (response) ;
+        p<BrokerError>       brokerError = exceptionResponse->getException() ;
+        string               message ;
+
+        // Build error message
+        message.assign("Request failed: ") ;
+        message.append( brokerError->getExceptionClass()->c_str() ) ;
+        message.append(", ") ;
+        message.append( brokerError->getStackTrace()->c_str() ) ;
+
+        // TODO: Change to CMSException()
+        throw CmsException( message.c_str() ) ; 
+    }
+    return response ;
+}
+
+/*
+ *
+ */
+void Connection::oneway(p<ICommand> command) throw(CmsException)
+{
+    checkConnected() ;
+    transport->oneway(command) ;
+}
+
+/*
+ *
+ */
+void Connection::disposeOf(p<IDataStructure> dataStructure) throw(CmsException)
+{
+    p<RemoveInfo> command = new RemoveInfo() ;
+    command->setObjectId( dataStructure ) ;
+    syncRequest(command) ;
+}
+
+/*
+ * Creates a new temporary destination name.
+ */
+p<string> Connection::createTemporaryDestinationName()
+{
+    p<string> name = new string() ;
+    char*     buffer = new char[15] ;
+
+    {
+        LOCKED_SCOPE( mutex );
+
+        name->assign( connectionInfo->getConnectionId()->getValue()->c_str() ) ;
+        name->append( ":" ) ;
+#ifdef unix
+        sprintf(buffer, "%lld", ++tempDestinationCounter) ;
+#else
+        sprintf(buffer, "%I64d", ++tempDestinationCounter) ;
+#endif
+        name->append( buffer ) ;
+    }
+
+    return name ;
+}
+
+/*
+ * Creates a new local transaction ID.
+ */
+p<LocalTransactionId> Connection::createLocalTransactionId()
+{
+    p<LocalTransactionId> id = new LocalTransactionId() ;
+
+    id->setConnectionId( getConnectionId() ) ;
+
+    {
+        LOCKED_SCOPE (mutex);
+        id->setValue( ++localTransactionCounter ) ;
+    }
+
+    return id ;
+}
+
+
+// --- Implementation methods ---------------------------------------
+
+/*
+ *
+ */
+p<SessionInfo> Connection::createSessionInfo(AcknowledgementMode ackMode)
+{
+    p<SessionInfo> sessionInfo = new SessionInfo() ;
+    p<SessionId>   sessionId   = new SessionId() ;
+    
+    sessionId->setConnectionId ( connectionInfo->getConnectionId()->getValue() ) ;
+
+    {
+        LOCKED_SCOPE( mutex );
+        sessionId->setValue( ++sessionCounter ) ; 
+    }
+
+    sessionInfo->setSessionId( sessionId ) ;
+    return sessionInfo ; 
+}
+
+/*
+ *
+ */
+void Connection::checkConnected() throw(CmsException) 
+{
+    if( closed )
+        throw ConnectionClosedException("Oops! Connection already closed.") ;
+
+    if( !connected )
+    {
+        connected = true ;
+
+        // Send the connection info and see if we get an ack/nak
+        syncRequest( connectionInfo ) ;
+    } 
+}
+
+/*
+ * Handle incoming commands.
+ */
+void Connection::onCommand(p<ITransport> transport, p<ICommand> command)
+{
+    if( command->getDataStructureType() == MessageDispatch::TYPE )
+    {
+        p<MessageDispatch> dispatch = p_cast<MessageDispatch> (command) ;
+        p<ConsumerId> consumerId = dispatch->getConsumerId() ;
+        p<MessageConsumer> consumer = NULL ;
+        list< p<ISession> >::const_iterator tempIter ;
+
+        // Iterate through all sessions and check if one has the consumer
+        for( tempIter = sessions.begin() ;
+             tempIter != sessions.end() ;
+             tempIter++ )
+        {
+            consumer = p_cast<Session> (*tempIter)->getConsumer(consumerId) ;
+
+            // Found a match?
+            if( consumer != NULL )
+                break ;
+        }
+        if( consumer == NULL )
+            cout << "ERROR: No such consumer active: " << consumerId->getValue() << endl ;
+        else
+        {
+            p<ActiveMQMessage> message = p_cast<ActiveMQMessage> (dispatch->getMessage()) ;
+            consumer->dispatch(message) ;
+        }
+    }
+    else if( command->getDataStructureType() == WireFormatInfo::TYPE )
+        this->brokerWireFormat = p_cast<WireFormatInfo> (command) ;
+
+    else if( command->getDataStructureType() == BrokerInfo::TYPE )
+        this->brokerInfo = p_cast<BrokerInfo> (command) ;
+
+    else
+        cout << "ERROR: Unknown command: " << command->getDataStructureType() << endl ;
+}
+
+/*
+ * Handle incoming broker errors.
+ */
+void Connection::onError(p<ITransport> transport, exception& error)
+{
+    if( listener != NULL )
+        this->listener->onException(error) ;
+    else
+        cout << "ERROR: Received a broker exception: " << error.what() << endl ;
+}

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Connection.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Connection.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Connection.hpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Connection.hpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Connection.hpp Fri Jul 28 01:22:48 2006
@@ -1,124 +1,124 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#ifndef ActiveMQ_Connection_hpp_
-#define ActiveMQ_Connection_hpp_
-
-#include <iostream>
-#include <list>
-#include <string>
-#include <map>
-
-#include "cms/ISession.hpp"
-#include "cms/IConnection.hpp"
-#include "cms/IExceptionListener.hpp"
-#include "cms/CmsException.hpp"
-#include "activemq/ConnectionClosedException.hpp"
-#include "activemq/MessageConsumer.hpp"
-#include "activemq/command/BrokerInfo.hpp"
-#include "activemq/command/WireFormatInfo.hpp"
-#include "activemq/command/ExceptionResponse.hpp"
-#include "activemq/command/ConnectionInfo.hpp"
-#include "activemq/command/LocalTransactionId.hpp"
-#include "activemq/command/MessageDispatch.hpp"
-#include "activemq/command/SessionInfo.hpp"
-#include "activemq/command/SessionId.hpp"
-#include "activemq/command/ShutdownInfo.hpp"
-#include "activemq/transport/ITransport.hpp"
-#include "activemq/transport/ICommandListener.hpp"
-#include "ppr/thread/SimpleMutex.hpp"
-#include "ppr/util/ifr/p"
-
-// Turn off warning message for ignored exception specification
-#ifdef _MSC_VER
-#pragma warning( disable : 4290 )
-#endif
-
-namespace apache
-{
-  namespace activemq
-  {
-    using namespace std;
-    using namespace ifr;
-    using namespace apache::cms;
-    using namespace apache::activemq::command;
-    using namespace apache::activemq::transport;
-    using namespace apache::ppr::thread;
-    using namespace apache::ppr::util;
-
-/*
- * 
- */
-class Connection : public IConnection, public ICommandListener
-{
-private:
-    p<ConnectionInfo>     connectionInfo ;
-    p<ITransport>         transport ;
-    p<BrokerInfo>         brokerInfo ;        // from MQ broker
-    p<WireFormatInfo>     brokerWireFormat ;  // from MQ broker
-    p<IExceptionListener> listener ;
-    list< p<ISession> >   sessions ;
-    bool                  connected,
-                          closed ;
-    AcknowledgementMode   acknowledgementMode ;
-    long long             sessionCounter,
-                          tempDestinationCounter,
-                          localTransactionCounter ;
-    SimpleMutex           mutex ;
-
-public:
-    // Constructors
-    Connection(p<ITransport> transport, p<ConnectionInfo> connectionInfo) ;
-    virtual ~Connection() ;
-
-    // Attribute methods
-    virtual void setExceptionListener(p<IExceptionListener> listener) ;
-    virtual p<IExceptionListener> getExceptionListener() ;
-    virtual p<ITransport> getTransport() ;
-    virtual void setTransport(p<ITransport> transport) ;
-    virtual p<string> getClientId() ;
-    virtual void setClientId(const char* value) throw (CmsException) ;
-    virtual p<BrokerInfo> getBrokerInfo() ;
-    virtual p<WireFormatInfo> getBrokerWireFormat() ;
-    virtual AcknowledgementMode getAcknowledgementMode() ;
-    virtual void setAcknowledgementMode(AcknowledgementMode mode) ;
-//    virtual void addConsumer(p<ConsumerId> consumerId, p<MessageConsumer> messageConsumer) ;
-//    virtual void removeConsumer(p<ConsumerId> consumerId) ;
-    virtual p<ConnectionId> getConnectionId() ;
-
-    // Operation methods
-    virtual p<ISession> createSession() throw(CmsException) ;
-    virtual p<ISession> createSession(AcknowledgementMode mode) throw(CmsException) ;
-    virtual p<Response> syncRequest(p<ICommand> command) throw(CmsException) ;
-    virtual void oneway(p<ICommand> command) throw(CmsException) ;
-    virtual void disposeOf(p<IDataStructure> dataStructure) throw(CmsException) ;
-    virtual p<string> createTemporaryDestinationName() ;
-    virtual p<LocalTransactionId> createLocalTransactionId() ;
-    virtual void close() ;
-
-protected:
-    // Implementation methods
-    p<SessionInfo> createSessionInfo(AcknowledgementMode mode) ;
-    void checkConnected() throw(CmsException) ;
-    void onCommand(p<ITransport> transport, p<ICommand> command) ;
-    void onError(p<ITransport> transport, exception& error) ;
-} ;
-
-/* namespace */
-  }
-}
-
-#endif /*ActiveMQ_Connection_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#ifndef ActiveMQ_Connection_hpp_
+#define ActiveMQ_Connection_hpp_
+
+#include <iostream>
+#include <list>
+#include <string>
+#include <map>
+
+#include "cms/ISession.hpp"
+#include "cms/IConnection.hpp"
+#include "cms/IExceptionListener.hpp"
+#include "cms/CmsException.hpp"
+#include "activemq/ConnectionClosedException.hpp"
+#include "activemq/MessageConsumer.hpp"
+#include "activemq/command/BrokerInfo.hpp"
+#include "activemq/command/WireFormatInfo.hpp"
+#include "activemq/command/ExceptionResponse.hpp"
+#include "activemq/command/ConnectionInfo.hpp"
+#include "activemq/command/LocalTransactionId.hpp"
+#include "activemq/command/MessageDispatch.hpp"
+#include "activemq/command/SessionInfo.hpp"
+#include "activemq/command/SessionId.hpp"
+#include "activemq/command/ShutdownInfo.hpp"
+#include "activemq/transport/ITransport.hpp"
+#include "activemq/transport/ICommandListener.hpp"
+#include "ppr/thread/SimpleMutex.hpp"
+#include "ppr/util/ifr/p"
+
+// Turn off warning message for ignored exception specification
+#ifdef _MSC_VER
+#pragma warning( disable : 4290 )
+#endif
+
+namespace apache
+{
+  namespace activemq
+  {
+    using namespace std;
+    using namespace ifr;
+    using namespace apache::cms;
+    using namespace apache::activemq::command;
+    using namespace apache::activemq::transport;
+    using namespace apache::ppr::thread;
+    using namespace apache::ppr::util;
+
+/*
+ * 
+ */
+class Connection : public IConnection, public ICommandListener
+{
+private:
+    p<ConnectionInfo>     connectionInfo ;
+    p<ITransport>         transport ;
+    p<BrokerInfo>         brokerInfo ;        // from MQ broker
+    p<WireFormatInfo>     brokerWireFormat ;  // from MQ broker
+    p<IExceptionListener> listener ;
+    list< p<ISession> >   sessions ;
+    bool                  connected,
+                          closed ;
+    AcknowledgementMode   acknowledgementMode ;
+    long long             sessionCounter,
+                          tempDestinationCounter,
+                          localTransactionCounter ;
+    SimpleMutex           mutex ;
+
+public:
+    // Constructors
+    Connection(p<ITransport> transport, p<ConnectionInfo> connectionInfo) ;
+    virtual ~Connection() ;
+
+    // Attribute methods
+    virtual void setExceptionListener(p<IExceptionListener> listener) ;
+    virtual p<IExceptionListener> getExceptionListener() ;
+    virtual p<ITransport> getTransport() ;
+    virtual void setTransport(p<ITransport> transport) ;
+    virtual p<string> getClientId() ;
+    virtual void setClientId(const char* value) throw (CmsException) ;
+    virtual p<BrokerInfo> getBrokerInfo() ;
+    virtual p<WireFormatInfo> getBrokerWireFormat() ;
+    virtual AcknowledgementMode getAcknowledgementMode() ;
+    virtual void setAcknowledgementMode(AcknowledgementMode mode) ;
+//    virtual void addConsumer(p<ConsumerId> consumerId, p<MessageConsumer> messageConsumer) ;
+//    virtual void removeConsumer(p<ConsumerId> consumerId) ;
+    virtual p<ConnectionId> getConnectionId() ;
+
+    // Operation methods
+    virtual p<ISession> createSession() throw(CmsException) ;
+    virtual p<ISession> createSession(AcknowledgementMode mode) throw(CmsException) ;
+    virtual p<Response> syncRequest(p<ICommand> command) throw(CmsException) ;
+    virtual void oneway(p<ICommand> command) throw(CmsException) ;
+    virtual void disposeOf(p<IDataStructure> dataStructure) throw(CmsException) ;
+    virtual p<string> createTemporaryDestinationName() ;
+    virtual p<LocalTransactionId> createLocalTransactionId() ;
+    virtual void close() ;
+
+protected:
+    // Implementation methods
+    p<SessionInfo> createSessionInfo(AcknowledgementMode mode) ;
+    void checkConnected() throw(CmsException) ;
+    void onCommand(p<ITransport> transport, p<ICommand> command) ;
+    void onError(p<ITransport> transport, exception& error) ;
+} ;
+
+/* namespace */
+  }
+}
+
+#endif /*ActiveMQ_Connection_hpp_*/

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Connection.hpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionClosedException.cpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionClosedException.cpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionClosedException.cpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionClosedException.cpp Fri Jul 28 01:22:48 2006
@@ -1,29 +1,29 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#include "activemq/ConnectionClosedException.hpp"
-
-using namespace apache::activemq;
-
-/*
- * 
- */
-ConnectionClosedException::ConnectionClosedException(const char* message)
-    : CmsException(message)
-{
-    // no-op
-}
-
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#include "activemq/ConnectionClosedException.hpp"
+
+using namespace apache::activemq;
+
+/*
+ * 
+ */
+ConnectionClosedException::ConnectionClosedException(const char* message)
+    : CmsException(message)
+{
+    // no-op
+}
+

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionClosedException.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionClosedException.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionClosedException.hpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionClosedException.hpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionClosedException.hpp Fri Jul 28 01:22:48 2006
@@ -1,41 +1,41 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#ifndef ActiveMQ_ConnectionClosedException_hpp_
-#define ActiveMQ_ConnectionClosedException_hpp_
-
-#include "cms/CmsException.hpp"
-
-namespace apache
-{
-  namespace activemq
-  {
-    using namespace apache::cms;
-
-/*
- * Signals that a connection is being used when it is already closed.
- */
-class ConnectionClosedException : public CmsException
-{
-public:
-    ConnectionClosedException(const char* message) ;
-};
-
-/* namespace */
-  }
-}
-
-#endif /*ActiveMQ_ConnectionClosedException_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#ifndef ActiveMQ_ConnectionClosedException_hpp_
+#define ActiveMQ_ConnectionClosedException_hpp_
+
+#include "cms/CmsException.hpp"
+
+namespace apache
+{
+  namespace activemq
+  {
+    using namespace apache::cms;
+
+/*
+ * Signals that a connection is being used when it is already closed.
+ */
+class ConnectionClosedException : public CmsException
+{
+public:
+    ConnectionClosedException(const char* message) ;
+};
+
+/* namespace */
+  }
+}
+
+#endif /*ActiveMQ_ConnectionClosedException_hpp_*/

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionClosedException.hpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionException.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionException.hpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionException.hpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionException.hpp Fri Jul 28 01:22:48 2006
@@ -1,47 +1,47 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#ifndef ActiveMQ_ConnectionException_hpp_
-#define ActiveMQ_ConnectionException_hpp_
-
-#include "ppr/TraceException.hpp"
-
-namespace apache
-{
-  namespace activemq
-  {
-    using namespace std ;
-    using namespace apache::ppr;
-
-/*
- * Signals that a connection error has occured.
- */
-class ConnectionException : public TraceException
-{
-public:
-    ConnectionException() : TraceException()
-       { /* no-op */ } ;
-    ConnectionException(const char *const& msg) : TraceException(msg)
-       { /* no-op */ } ;
-    ConnectionException(const char* fileName, int lineNo, const char* msg) : TraceException(msg)
-       { /* no-op */ } ;
-} ;
-
-/* namespace */
-  }
-}
-
-#endif /*ActiveMQ_ConnectionException_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#ifndef ActiveMQ_ConnectionException_hpp_
+#define ActiveMQ_ConnectionException_hpp_
+
+#include "ppr/TraceException.hpp"
+
+namespace apache
+{
+  namespace activemq
+  {
+    using namespace std ;
+    using namespace apache::ppr;
+
+/*
+ * Signals that a connection error has occured.
+ */
+class ConnectionException : public TraceException
+{
+public:
+    ConnectionException() : TraceException()
+       { /* no-op */ } ;
+    ConnectionException(const char *const& msg) : TraceException(msg)
+       { /* no-op */ } ;
+    ConnectionException(const char* fileName, int lineNo, const char* msg) : TraceException(msg)
+       { /* no-op */ } ;
+} ;
+
+/* namespace */
+  }
+}
+
+#endif /*ActiveMQ_ConnectionException_hpp_*/

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionException.hpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionFactory.cpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionFactory.cpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionFactory.cpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionFactory.cpp Fri Jul 28 01:22:48 2006
@@ -1,184 +1,184 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#include "activemq/ConnectionFactory.hpp"
-#include "activemq/Connection.hpp"
-#include "activemq/protocol/openwire/OpenWireProtocol.hpp"
-#include "activemq/transport/tcp/TcpTransport.hpp"
-
-using namespace apache::activemq;
-
-/*
- *
- */
-ConnectionFactory::ConnectionFactory()
-{
-    // Use default URI
-    brokerUri        = new Uri ("tcp://localhost:61616?wireFormat=openwire") ;
-    username         = NULL ;
-    password         = NULL ;
-    clientId         = Guid::getGuidString() ;
-    transportFactory = new TransportFactory() ;
-}
-
-/*
- *
- */
-ConnectionFactory::ConnectionFactory(p<Uri> brokerUri)
-{
-    this->brokerUri  = brokerUri;
-    username         = NULL ;
-    password         = NULL ;
-    clientId         = Guid::getGuidString() ;
-    transportFactory = new TransportFactory() ;
-}
-
-
-// --- Attribute methods --------------------------------------------
-
-/*
- *
- */
-p<Uri> ConnectionFactory::getBrokerUri()
-{
-     return brokerUri ;
-}
-
-/*
- *
- */
-void ConnectionFactory::setBrokerUri(p<Uri> brokerUri)
-{
-    this->brokerUri = brokerUri ;
-}
-
-/*
- *
- */
-p<string> ConnectionFactory::getUsername()
-{
-    return username ;
-}
-
-/*
- *
- */
-void ConnectionFactory::setUsername(const char* username)
-{
-    this->username = new string(username) ;
-}
-
-/*
- *
- */
-p<string> ConnectionFactory::getPassword()
-{
-    return password ;
-}
-
-/*
- *
- */
-void ConnectionFactory::setPassword(const char* password)
-{
-    this->password = new string(password);
-
-}
-
-/*
- *
- */
-p<string> ConnectionFactory::getClientId()
-{
-    return clientId ;
-}
-
-/*
- *
- */
-void ConnectionFactory::setClientId(const char* clientId)
-{
-    this->clientId = new string(clientId) ;
-}
-
-
-// --- Operation methods --------------------------------------------
-
-/*
- *
- */
-p<IConnection> ConnectionFactory::createConnection() throw (ConnectionException)
-{
-    return createConnection( (username != NULL) ? username->c_str() : NULL,
-                             (password != NULL) ? password->c_str() : NULL ) ;
-}
-
-/*
- *
- */
-p<IConnection> ConnectionFactory::createConnection(const char* username, const char* password) throw (ConnectionException)
-{
-    p<ConnectionInfo> connectionInfo ;
-    p<ITransport>     transport ;
-    p<Connection>     connection ;
-
-
-    // Set up a new connection object
-    connectionInfo = createConnectionInfo(username, password) ;
-    transport      = createTransport() ;
-    connection     = new Connection(transport, connectionInfo) ;
-    connection->setClientId( clientId->c_str() ) ;
-
-    return connection ;
-}
-
-
-// --- Implementation methods ---------------------------------------
-
-/*
- *
- */
-p<ConnectionInfo> ConnectionFactory::createConnectionInfo(const char* username, const char* password)
-{
-    p<ConnectionInfo> connectionInfo = new ConnectionInfo() ;
-    p<ConnectionId>   connectionId   = new ConnectionId() ;
-    p<string>         uid = (username != NULL) ? new string(username) : NULL ;
-    p<string>         pwd = (password != NULL) ? new string(password) : NULL ;
-
-    connectionId->setValue( Guid::getGuidString() ) ;
-    connectionInfo->setConnectionId( connectionId ) ;
-    connectionInfo->setUserName( uid ) ;
-    connectionInfo->setPassword( pwd ) ;
-    connectionInfo->setClientId( clientId ) ;
-
-    return connectionInfo ;
-}
-
-/*
- *
- */
-p<ITransport> ConnectionFactory::createTransport() throw (ConnectionException)
-{
-    try
-    {
-    	// Create a transport for given URI
-        return transportFactory->createTransport( brokerUri ) ;
-    }
-    catch( SocketException se )
-    {
-        throw ConnectionException(__FILE__, __LINE__, "Failed to connect socket") ;
-    }
-}
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#include "activemq/ConnectionFactory.hpp"
+#include "activemq/Connection.hpp"
+#include "activemq/protocol/openwire/OpenWireProtocol.hpp"
+#include "activemq/transport/tcp/TcpTransport.hpp"
+
+using namespace apache::activemq;
+
+/*
+ *
+ */
+ConnectionFactory::ConnectionFactory()
+{
+    // Use default URI
+    brokerUri        = new Uri ("tcp://localhost:61616?wireFormat=openwire") ;
+    username         = NULL ;
+    password         = NULL ;
+    clientId         = Guid::getGuidString() ;
+    transportFactory = new TransportFactory() ;
+}
+
+/*
+ *
+ */
+ConnectionFactory::ConnectionFactory(p<Uri> brokerUri)
+{
+    this->brokerUri  = brokerUri;
+    username         = NULL ;
+    password         = NULL ;
+    clientId         = Guid::getGuidString() ;
+    transportFactory = new TransportFactory() ;
+}
+
+
+// --- Attribute methods --------------------------------------------
+
+/*
+ *
+ */
+p<Uri> ConnectionFactory::getBrokerUri()
+{
+     return brokerUri ;
+}
+
+/*
+ *
+ */
+void ConnectionFactory::setBrokerUri(p<Uri> brokerUri)
+{
+    this->brokerUri = brokerUri ;
+}
+
+/*
+ *
+ */
+p<string> ConnectionFactory::getUsername()
+{
+    return username ;
+}
+
+/*
+ *
+ */
+void ConnectionFactory::setUsername(const char* username)
+{
+    this->username = new string(username) ;
+}
+
+/*
+ *
+ */
+p<string> ConnectionFactory::getPassword()
+{
+    return password ;
+}
+
+/*
+ *
+ */
+void ConnectionFactory::setPassword(const char* password)
+{
+    this->password = new string(password);
+
+}
+
+/*
+ *
+ */
+p<string> ConnectionFactory::getClientId()
+{
+    return clientId ;
+}
+
+/*
+ *
+ */
+void ConnectionFactory::setClientId(const char* clientId)
+{
+    this->clientId = new string(clientId) ;
+}
+
+
+// --- Operation methods --------------------------------------------
+
+/*
+ *
+ */
+p<IConnection> ConnectionFactory::createConnection() throw (ConnectionException)
+{
+    return createConnection( (username != NULL) ? username->c_str() : NULL,
+                             (password != NULL) ? password->c_str() : NULL ) ;
+}
+
+/*
+ *
+ */
+p<IConnection> ConnectionFactory::createConnection(const char* username, const char* password) throw (ConnectionException)
+{
+    p<ConnectionInfo> connectionInfo ;
+    p<ITransport>     transport ;
+    p<Connection>     connection ;
+
+
+    // Set up a new connection object
+    connectionInfo = createConnectionInfo(username, password) ;
+    transport      = createTransport() ;
+    connection     = new Connection(transport, connectionInfo) ;
+    connection->setClientId( clientId->c_str() ) ;
+
+    return connection ;
+}
+
+
+// --- Implementation methods ---------------------------------------
+
+/*
+ *
+ */
+p<ConnectionInfo> ConnectionFactory::createConnectionInfo(const char* username, const char* password)
+{
+    p<ConnectionInfo> connectionInfo = new ConnectionInfo() ;
+    p<ConnectionId>   connectionId   = new ConnectionId() ;
+    p<string>         uid = (username != NULL) ? new string(username) : NULL ;
+    p<string>         pwd = (password != NULL) ? new string(password) : NULL ;
+
+    connectionId->setValue( Guid::getGuidString() ) ;
+    connectionInfo->setConnectionId( connectionId ) ;
+    connectionInfo->setUserName( uid ) ;
+    connectionInfo->setPassword( pwd ) ;
+    connectionInfo->setClientId( clientId ) ;
+
+    return connectionInfo ;
+}
+
+/*
+ *
+ */
+p<ITransport> ConnectionFactory::createTransport() throw (ConnectionException)
+{
+    try
+    {
+    	// Create a transport for given URI
+        return transportFactory->createTransport( brokerUri ) ;
+    }
+    catch( SocketException se )
+    {
+        throw ConnectionException(__FILE__, __LINE__, "Failed to connect socket") ;
+    }
+}

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionFactory.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionFactory.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionFactory.hpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionFactory.hpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionFactory.hpp Fri Jul 28 01:22:48 2006
@@ -1,88 +1,88 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#ifndef ActiveMQ_ConnectionFactory_hpp_
-#define ActiveMQ_ConnectionFactory_hpp_
-
-// Must be included before any STL includes
-#include "ppr/util/Guid.hpp"
-
-#include <string>
-#include "cms/IConnection.hpp"
-#include "cms/IConnectionFactory.hpp"
-#include "activemq/ConnectionException.hpp"
-#include "activemq/command/ConnectionInfo.hpp"
-#include "activemq/command/ConnectionId.hpp"
-#include "activemq/protocol/IProtocol.hpp"
-#include "activemq/transport/ITransport.hpp"
-#include "activemq/transport/ITransportFactory.hpp"
-#include "activemq/transport/TransportFactory.hpp"
-#include "ppr/net/Uri.hpp"
-#include "ppr/util/ifr/p"
-
-namespace apache
-{
-  namespace activemq
-  {
-      using namespace apache::activemq::command;
-      using namespace apache::activemq::protocol;
-      using namespace apache::activemq::transport;
-      using namespace apache::ppr::net;
-      using namespace ifr;
-
-/*
- * 
- */
-class ConnectionFactory : public IConnectionFactory
-{
-private:
-    p<Uri>               brokerUri ;
-    p<string>            username ;
-    p<string>            password ;
-    p<string>            clientId ;
-    p<IProtocol>         protocol ;
-    p<ITransportFactory> transportFactory ;
-
-public:
-    // Constructors
-    ConnectionFactory() ;
-    ConnectionFactory(p<Uri> uri) ;
-
-    // Attribute methods
-    virtual p<Uri> getBrokerUri() ;
-    virtual void setBrokerUri(p<Uri> brokerUri) ;
-    virtual p<string> getUsername() ;
-    virtual void setUsername(const char* username) ;
-    virtual p<string> getPassword() ;
-    virtual void setPassword(const char* password) ;
-    virtual p<string> getClientId() ;
-    virtual void setClientId(const char* clientId) ;
-
-    // Operation methods
-    virtual p<IConnection> createConnection() throw (ConnectionException) ;
-    virtual p<IConnection> createConnection(const char* username, const char* password) throw (ConnectionException) ;
-
-protected:
-    // Implementation methods
-    virtual p<ConnectionInfo> createConnectionInfo(const char* username, const char* password) ;
-    virtual p<ITransport> createTransport() throw (ConnectionException) ;
-} ;
-
-/* namespace */
-  }
-}
-
-#endif /*ActiveMQ_ConnectionFactory_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#ifndef ActiveMQ_ConnectionFactory_hpp_
+#define ActiveMQ_ConnectionFactory_hpp_
+
+// Must be included before any STL includes
+#include "ppr/util/Guid.hpp"
+
+#include <string>
+#include "cms/IConnection.hpp"
+#include "cms/IConnectionFactory.hpp"
+#include "activemq/ConnectionException.hpp"
+#include "activemq/command/ConnectionInfo.hpp"
+#include "activemq/command/ConnectionId.hpp"
+#include "activemq/protocol/IProtocol.hpp"
+#include "activemq/transport/ITransport.hpp"
+#include "activemq/transport/ITransportFactory.hpp"
+#include "activemq/transport/TransportFactory.hpp"
+#include "ppr/net/Uri.hpp"
+#include "ppr/util/ifr/p"
+
+namespace apache
+{
+  namespace activemq
+  {
+      using namespace apache::activemq::command;
+      using namespace apache::activemq::protocol;
+      using namespace apache::activemq::transport;
+      using namespace apache::ppr::net;
+      using namespace ifr;
+
+/*
+ * 
+ */
+class ConnectionFactory : public IConnectionFactory
+{
+private:
+    p<Uri>               brokerUri ;
+    p<string>            username ;
+    p<string>            password ;
+    p<string>            clientId ;
+    p<IProtocol>         protocol ;
+    p<ITransportFactory> transportFactory ;
+
+public:
+    // Constructors
+    ConnectionFactory() ;
+    ConnectionFactory(p<Uri> uri) ;
+
+    // Attribute methods
+    virtual p<Uri> getBrokerUri() ;
+    virtual void setBrokerUri(p<Uri> brokerUri) ;
+    virtual p<string> getUsername() ;
+    virtual void setUsername(const char* username) ;
+    virtual p<string> getPassword() ;
+    virtual void setPassword(const char* password) ;
+    virtual p<string> getClientId() ;
+    virtual void setClientId(const char* clientId) ;
+
+    // Operation methods
+    virtual p<IConnection> createConnection() throw (ConnectionException) ;
+    virtual p<IConnection> createConnection(const char* username, const char* password) throw (ConnectionException) ;
+
+protected:
+    // Implementation methods
+    virtual p<ConnectionInfo> createConnectionInfo(const char* username, const char* password) ;
+    virtual p<ITransport> createTransport() throw (ConnectionException) ;
+} ;
+
+/* namespace */
+  }
+}
+
+#endif /*ActiveMQ_ConnectionFactory_hpp_*/

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConnectionFactory.hpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConsumerClosedException.cpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConsumerClosedException.cpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConsumerClosedException.cpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConsumerClosedException.cpp Fri Jul 28 01:22:48 2006
@@ -1,29 +1,29 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#include "activemq/ConsumerClosedException.hpp"
-
-using namespace apache::activemq;
-
-/*
- * 
- */
-ConsumerClosedException::ConsumerClosedException(const char* message)
-    : CmsException(message)
-{
-    // no-op
-}
-
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#include "activemq/ConsumerClosedException.hpp"
+
+using namespace apache::activemq;
+
+/*
+ * 
+ */
+ConsumerClosedException::ConsumerClosedException(const char* message)
+    : CmsException(message)
+{
+    // no-op
+}
+

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConsumerClosedException.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConsumerClosedException.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConsumerClosedException.hpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConsumerClosedException.hpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConsumerClosedException.hpp Fri Jul 28 01:22:48 2006
@@ -1,41 +1,41 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#ifndef ActiveMQ_ConsumerClosedException_hpp_
-#define ActiveMQ_ConsumerClosedException_hpp_
-
-#include "cms/CmsException.hpp"
-
-namespace apache
-{
-  namespace activemq
-  {
-      using namespace apache::cms;
-
-/*
- * Signals that a consumer is being used when it is already closed.
- */
-class ConsumerClosedException : public CmsException
-{
-public:
-    ConsumerClosedException(const char* message) ;
-};
-
-/* namespace */
-  }
-}
-
-#endif /*ActiveMQ_ConsumerClosedException_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#ifndef ActiveMQ_ConsumerClosedException_hpp_
+#define ActiveMQ_ConsumerClosedException_hpp_
+
+#include "cms/CmsException.hpp"
+
+namespace apache
+{
+  namespace activemq
+  {
+      using namespace apache::cms;
+
+/*
+ * Signals that a consumer is being used when it is already closed.
+ */
+class ConsumerClosedException : public CmsException
+{
+public:
+    ConsumerClosedException(const char* message) ;
+};
+
+/* namespace */
+  }
+}
+
+#endif /*ActiveMQ_ConsumerClosedException_hpp_*/

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ConsumerClosedException.hpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/DestinationFilter.cpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/DestinationFilter.cpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/DestinationFilter.cpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/DestinationFilter.cpp Fri Jul 28 01:22:48 2006
@@ -1,47 +1,47 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#include "activemq/DestinationFilter.hpp"
-
-using namespace apache::activemq;
-
-// Init static constants
-const char* DestinationFilter::ANY_DESCENDENT = ">" ;
-const char* DestinationFilter::ANY_CHILD      = "*" ;
-
-/*
- * 
- */
-DestinationFilter::DestinationFilter()
-{
-    // no-op
-}
-
-/*
- * 
- */
-DestinationFilter::~DestinationFilter()
-{
-    // no-op
-}
-
-/*
- * 
- */
-bool DestinationFilter::matches(p<ActiveMQMessage> message)
-{
-    return matches( message->getDestination() ) ; 
-}
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#include "activemq/DestinationFilter.hpp"
+
+using namespace apache::activemq;
+
+// Init static constants
+const char* DestinationFilter::ANY_DESCENDENT = ">" ;
+const char* DestinationFilter::ANY_CHILD      = "*" ;
+
+/*
+ * 
+ */
+DestinationFilter::DestinationFilter()
+{
+    // no-op
+}
+
+/*
+ * 
+ */
+DestinationFilter::~DestinationFilter()
+{
+    // no-op
+}
+
+/*
+ * 
+ */
+bool DestinationFilter::matches(p<ActiveMQMessage> message)
+{
+    return matches( message->getDestination() ) ; 
+}

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/DestinationFilter.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/DestinationFilter.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/DestinationFilter.hpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/DestinationFilter.hpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/DestinationFilter.hpp Fri Jul 28 01:22:48 2006
@@ -1,52 +1,52 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#ifndef ActiveMQ_DestinationFilter_hpp_
-#define ActiveMQ_DestinationFilter_hpp_
-
-#include "activemq/command/ActiveMQMessage.hpp"
-#include "activemq/command/ActiveMQDestination.hpp"
-#include "ppr/util/ifr/p"
-
-namespace apache
-{
-  namespace activemq
-  {
-    using namespace ifr;
-    using namespace apache::activemq::command;
-
-/*
- * 
- */
-class DestinationFilter
-{
-public:
-    const static char* ANY_DESCENDENT ;
-    const static char* ANY_CHILD ;
-
-public:
-    DestinationFilter() ;
-    virtual ~DestinationFilter() ;
-
-    virtual bool matches(p<ActiveMQMessage> message) ;
-    virtual bool matches(p<ActiveMQDestination> destination) = 0 ;
-};
-
-/* namespace */
-  }
-}
-
-#endif /*ActiveMQ_DestinationFilter_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#ifndef ActiveMQ_DestinationFilter_hpp_
+#define ActiveMQ_DestinationFilter_hpp_
+
+#include "activemq/command/ActiveMQMessage.hpp"
+#include "activemq/command/ActiveMQDestination.hpp"
+#include "ppr/util/ifr/p"
+
+namespace apache
+{
+  namespace activemq
+  {
+    using namespace ifr;
+    using namespace apache::activemq::command;
+
+/*
+ * 
+ */
+class DestinationFilter
+{
+public:
+    const static char* ANY_DESCENDENT ;
+    const static char* ANY_CHILD ;
+
+public:
+    DestinationFilter() ;
+    virtual ~DestinationFilter() ;
+
+    virtual bool matches(p<ActiveMQMessage> message) ;
+    virtual bool matches(p<ActiveMQDestination> destination) = 0 ;
+};
+
+/* namespace */
+  }
+}
+
+#endif /*ActiveMQ_DestinationFilter_hpp_*/

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/DestinationFilter.hpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Dispatcher.cpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Dispatcher.cpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Dispatcher.cpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Dispatcher.cpp Fri Jul 28 01:22:48 2006
@@ -1,140 +1,140 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#include "activemq/Dispatcher.hpp"
-
-using namespace apache::activemq;
-
-/*
- * 
- */
-Dispatcher::Dispatcher()
-{
-    dispatchQueue = new queue< p<IMessage> > ;
-    redeliverList = new list< p<IMessage> > ;
-}
-
-/*
- * 
- */
-void Dispatcher::redeliverRolledBackMessages()
-{
-    LOCKED_SCOPE (mutex);
-
-    p<queue< p<IMessage> > > replacementQueue = new queue< p<IMessage> > ;
-    //(dispatchQueue->size() + redeliverList->size() ) ;
-
-    // Copy all messages to be redelivered to the new queue
-    while( !redeliverList->empty() )
-    {
-        replacementQueue->push( redeliverList->front() ) ;
-        redeliverList->pop_front() ;
-    }
-
-    // Copy all messages to be dispatched to the new queue
-    while( dispatchQueue->size() > 0 )
-    {
-        // Get first element in queue
-        p<IMessage> element = p_cast<IMessage> (dispatchQueue->front()) ;
-
-        // Remove first element from queue
-        dispatchQueue->pop() ;
-
-        // Add element to the new queue
-        replacementQueue->push(element) ;
-    }
-    // Switch to the new queue
-    dispatchQueue = replacementQueue ;
-
-    semaphore.notify() ;
-}
-
-/*
- * 
- */
-void Dispatcher::redeliver(p<IMessage> message)
-{
-    LOCKED_SCOPE (mutex);
-    redeliverList->push_back(message) ;
-}
-
-/*
- * 
- */
-void Dispatcher::enqueue(p<IMessage> message)
-{
-    LOCKED_SCOPE (mutex);
-    dispatchQueue->push(message) ;
-    semaphore.notify() ;
-}
-
-/*
- * 
- */
-p<IMessage> Dispatcher::dequeueNoWait()
-{
-    p<IMessage> msg = NULL ;
-
-    {
-        LOCKED_SCOPE (mutex);
-
-        if( dispatchQueue->size() > 0 )
-        {
-            msg = p_cast<IMessage> (dispatchQueue->front()) ;
-            dispatchQueue->pop() ;
-        }
-    }        
-    return msg ;
-}
-
-/*
- * 
- */
-p<IMessage> Dispatcher::dequeue(int timeout)
-{
-    p<IMessage> msg = NULL ;
-
-    {
-        LOCKED_SCOPE (mutex);
-
-        if( dispatchQueue->size() == 0 )
-            semaphore.wait(timeout) ;
-
-        if( dispatchQueue->size() > 0 )
-        {
-            msg = p_cast<IMessage> (dispatchQueue->front()) ;
-            dispatchQueue->pop() ;
-        }
-    }
-    return msg ;
-}
-
-/*
- * 
- */
-p<IMessage> Dispatcher::dequeue()
-{
-    p<IMessage> msg = NULL ;
-
-    {
-        LOCKED_SCOPE (mutex);
-
-        msg = p_cast<IMessage> (dispatchQueue->front()) ;
-        dispatchQueue->pop() ;
-    }
-
-    return msg ;
-}
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#include "activemq/Dispatcher.hpp"
+
+using namespace apache::activemq;
+
+/*
+ * 
+ */
+Dispatcher::Dispatcher()
+{
+    dispatchQueue = new queue< p<IMessage> > ;
+    redeliverList = new list< p<IMessage> > ;
+}
+
+/*
+ * 
+ */
+void Dispatcher::redeliverRolledBackMessages()
+{
+    LOCKED_SCOPE (mutex);
+
+    p<queue< p<IMessage> > > replacementQueue = new queue< p<IMessage> > ;
+    //(dispatchQueue->size() + redeliverList->size() ) ;
+
+    // Copy all messages to be redelivered to the new queue
+    while( !redeliverList->empty() )
+    {
+        replacementQueue->push( redeliverList->front() ) ;
+        redeliverList->pop_front() ;
+    }
+
+    // Copy all messages to be dispatched to the new queue
+    while( dispatchQueue->size() > 0 )
+    {
+        // Get first element in queue
+        p<IMessage> element = p_cast<IMessage> (dispatchQueue->front()) ;
+
+        // Remove first element from queue
+        dispatchQueue->pop() ;
+
+        // Add element to the new queue
+        replacementQueue->push(element) ;
+    }
+    // Switch to the new queue
+    dispatchQueue = replacementQueue ;
+
+    semaphore.notify() ;
+}
+
+/*
+ * 
+ */
+void Dispatcher::redeliver(p<IMessage> message)
+{
+    LOCKED_SCOPE (mutex);
+    redeliverList->push_back(message) ;
+}
+
+/*
+ * 
+ */
+void Dispatcher::enqueue(p<IMessage> message)
+{
+    LOCKED_SCOPE (mutex);
+    dispatchQueue->push(message) ;
+    semaphore.notify() ;
+}
+
+/*
+ * 
+ */
+p<IMessage> Dispatcher::dequeueNoWait()
+{
+    p<IMessage> msg = NULL ;
+
+    {
+        LOCKED_SCOPE (mutex);
+
+        if( dispatchQueue->size() > 0 )
+        {
+            msg = p_cast<IMessage> (dispatchQueue->front()) ;
+            dispatchQueue->pop() ;
+        }
+    }        
+    return msg ;
+}
+
+/*
+ * 
+ */
+p<IMessage> Dispatcher::dequeue(int timeout)
+{
+    p<IMessage> msg = NULL ;
+
+    {
+        LOCKED_SCOPE (mutex);
+
+        if( dispatchQueue->size() == 0 )
+            semaphore.wait(timeout) ;
+
+        if( dispatchQueue->size() > 0 )
+        {
+            msg = p_cast<IMessage> (dispatchQueue->front()) ;
+            dispatchQueue->pop() ;
+        }
+    }
+    return msg ;
+}
+
+/*
+ * 
+ */
+p<IMessage> Dispatcher::dequeue()
+{
+    p<IMessage> msg = NULL ;
+
+    {
+        LOCKED_SCOPE (mutex);
+
+        msg = p_cast<IMessage> (dispatchQueue->front()) ;
+        dispatchQueue->pop() ;
+    }
+
+    return msg ;
+}

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Dispatcher.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Dispatcher.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Dispatcher.hpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Dispatcher.hpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Dispatcher.hpp Fri Jul 28 01:22:48 2006
@@ -1,65 +1,65 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#ifndef ActiveMQ_Dispatcher_hpp_
-#define ActiveMQ_Dispatcher_hpp_
-
-#include <string>
-#include <list>
-#include <queue>
-#include "cms/IMessage.hpp"
-#include "activemq/command/Response.hpp"
-#include "ppr/thread/SimpleMutex.hpp"
-#include "ppr/thread/Semaphore.hpp"
-#include "ppr/util/ifr/p"
-
-namespace apache
-{
-  namespace activemq
-  {
-    using namespace ifr;
-    using namespace apache::activemq::command;
-    using namespace apache::cms;
-    using namespace apache::ppr::thread;
-
-/*
- * Handles the multi-threaded dispatching between transport and consumers.
- */
-class Dispatcher
-{
-private:
-    p<queue< p<IMessage> > > dispatchQueue ;
-    p<list< p<IMessage> > >  redeliverList ;
-    SimpleMutex              mutex ;
-    Semaphore                semaphore ;
-
-public:
-    Dispatcher() ;
-    virtual ~Dispatcher() {}
-
-    virtual void redeliverRolledBackMessages() ;
-    virtual void redeliver(p<IMessage> message) ;
-    virtual void enqueue(p<IMessage> message) ;
-    virtual p<IMessage> dequeueNoWait() ;
-    virtual p<IMessage> dequeue(int timeout) ;
-    virtual p<IMessage> dequeue() ;
-} ;
-
-/* namespace */
-  }
-}
-
-#endif /*ActiveMQ_Dispatcher_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#ifndef ActiveMQ_Dispatcher_hpp_
+#define ActiveMQ_Dispatcher_hpp_
+
+#include <string>
+#include <list>
+#include <queue>
+#include "cms/IMessage.hpp"
+#include "activemq/command/Response.hpp"
+#include "ppr/thread/SimpleMutex.hpp"
+#include "ppr/thread/Semaphore.hpp"
+#include "ppr/util/ifr/p"
+
+namespace apache
+{
+  namespace activemq
+  {
+    using namespace ifr;
+    using namespace apache::activemq::command;
+    using namespace apache::cms;
+    using namespace apache::ppr::thread;
+
+/*
+ * Handles the multi-threaded dispatching between transport and consumers.
+ */
+class Dispatcher
+{
+private:
+    p<queue< p<IMessage> > > dispatchQueue ;
+    p<list< p<IMessage> > >  redeliverList ;
+    SimpleMutex              mutex ;
+    Semaphore                semaphore ;
+
+public:
+    Dispatcher() ;
+    virtual ~Dispatcher() {}
+
+    virtual void redeliverRolledBackMessages() ;
+    virtual void redeliver(p<IMessage> message) ;
+    virtual void enqueue(p<IMessage> message) ;
+    virtual p<IMessage> dequeueNoWait() ;
+    virtual p<IMessage> dequeue(int timeout) ;
+    virtual p<IMessage> dequeue() ;
+} ;
+
+/* namespace */
+  }
+}
+
+#endif /*ActiveMQ_Dispatcher_hpp_*/

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/Dispatcher.hpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/IAcknowledger.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/IAcknowledger.hpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/IAcknowledger.hpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/IAcknowledger.hpp Fri Jul 28 01:22:48 2006
@@ -1,45 +1,45 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#ifndef ActiveMQ_IAcknowledger_hpp_
-#define ActiveMQ_IAcknowledger_hpp_
-
-#include "ppr/util/ifr/p"
-
-namespace apache
-{
-  namespace activemq
-  {
-    namespace command
-    {
-        class ActiveMQMessage ;
-    }
-    using namespace ifr;
-    using namespace apache::activemq::command;
-
-/*
- * Interface for message acknowledgers.
- */
-struct IAcknowledger : Interface
-{
-    virtual void acknowledge(p<ActiveMQMessage> message) = 0 ;
-} ;
-
-/* namespace */
-  }
-}
-
-#endif /*ActiveMQ_IAcknowledger_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#ifndef ActiveMQ_IAcknowledger_hpp_
+#define ActiveMQ_IAcknowledger_hpp_
+
+#include "ppr/util/ifr/p"
+
+namespace apache
+{
+  namespace activemq
+  {
+    namespace command
+    {
+        class ActiveMQMessage ;
+    }
+    using namespace ifr;
+    using namespace apache::activemq::command;
+
+/*
+ * Interface for message acknowledgers.
+ */
+struct IAcknowledger : Interface
+{
+    virtual void acknowledge(p<ActiveMQMessage> message) = 0 ;
+} ;
+
+/* namespace */
+  }
+}
+
+#endif /*ActiveMQ_IAcknowledger_hpp_*/

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/IAcknowledger.hpp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ICommand.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ICommand.hpp?rev=426431&r1=426430&r2=426431&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ICommand.hpp (original)
+++ incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ICommand.hpp Fri Jul 28 01:22:48 2006
@@ -1,42 +1,42 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * Licensed 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.
- */
-#ifndef ActiveMQ_ICommand_hpp_
-#define ActiveMQ_ICommand_hpp_
-
-#include "activemq/IDataStructure.hpp"
-
-namespace apache
-{
-  namespace activemq
-  {
-
-/*
- * An OpenWire command
- */
-struct ICommand : IDataStructure
-{
-    virtual int getCommandId() = 0;
-    virtual void setCommandId(int value) = 0;
-    virtual bool getResponseRequired() = 0;
-    virtual void setResponseRequired(bool value) = 0;
-};
-
-/* namespace */
-  }
-}
-
-#endif /*ActiveMQ_ICommand_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+#ifndef ActiveMQ_ICommand_hpp_
+#define ActiveMQ_ICommand_hpp_
+
+#include "activemq/IDataStructure.hpp"
+
+namespace apache
+{
+  namespace activemq
+  {
+
+/*
+ * An OpenWire command
+ */
+struct ICommand : IDataStructure
+{
+    virtual int getCommandId() = 0;
+    virtual void setCommandId(int value) = 0;
+    virtual bool getResponseRequired() = 0;
+    virtual void setResponseRequired(bool value) = 0;
+};
+
+/* namespace */
+  }
+}
+
+#endif /*ActiveMQ_ICommand_hpp_*/

Propchange: incubator/activemq/branches/activemq-4.0/openwire-cpp/src/main/cpp/activemq/ICommand.hpp
------------------------------------------------------------------------------
    svn:eol-style = native