You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2008/08/25 01:21:18 UTC
svn commit: r688574 - in
/activemq/activemq-cpp/trunk/src/main/activemq/connector/openwire:
OpenWireConnector.cpp OpenWireConnector.h
Author: tabish
Date: Sun Aug 24 16:21:18 2008
New Revision: 688574
URL: http://svn.apache.org/viewvc?rev=688574&view=rev
Log:
Implement timed sync request to remove the connection.
Modified:
activemq/activemq-cpp/trunk/src/main/activemq/connector/openwire/OpenWireConnector.cpp
activemq/activemq-cpp/trunk/src/main/activemq/connector/openwire/OpenWireConnector.h
Modified: activemq/activemq-cpp/trunk/src/main/activemq/connector/openwire/OpenWireConnector.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/connector/openwire/OpenWireConnector.cpp?rev=688574&r1=688573&r2=688574&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/connector/openwire/OpenWireConnector.cpp (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/connector/openwire/OpenWireConnector.cpp Sun Aug 24 16:21:18 2008
@@ -237,7 +237,7 @@
}
// Remove our ConnectionId from the Broker
- disposeOf( connectionInfo.getConnectionId() );
+ disposeOf( connectionInfo.getConnectionId(), this->getCloseTimeout() );
// Send the disconnect command to the broker.
commands::ShutdownInfo shutdown;
@@ -1577,6 +1577,21 @@
}
////////////////////////////////////////////////////////////////////////////////
+void OpenWireConnector::disposeOf( commands::DataStructure* objectId,
+ unsigned int timeout )
+ throw ( ConnectorException ) {
+
+ try{
+ commands::RemoveInfo command;
+ command.setObjectId( objectId->cloneDataStructure() );
+ delete this->syncRequest( &command, timeout );
+ }
+ AMQ_CATCH_RETHROW( ConnectorException )
+ AMQ_CATCH_EXCEPTION_CONVERT( Exception, OpenWireConnectorException )
+ AMQ_CATCHALL_THROW( OpenWireConnectorException )
+}
+
+////////////////////////////////////////////////////////////////////////////////
void OpenWireConnector::createTemporaryDestination(
commands::ActiveMQTempDestination* tempDestination ) throw ( ConnectorException ) {
Modified: activemq/activemq-cpp/trunk/src/main/activemq/connector/openwire/OpenWireConnector.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/connector/openwire/OpenWireConnector.h?rev=688574&r1=688573&r2=688574&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/connector/openwire/OpenWireConnector.h (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/connector/openwire/OpenWireConnector.h Sun Aug 24 16:21:18 2008
@@ -639,6 +639,15 @@
core::ActiveMQConstants::PARAM_SENDTIMEOUT ), "0" ) );
}
+ // Gets the time to wait for a response from the Broker when the close message
+ // is sent.
+ virtual unsigned int getCloseTimeout() const {
+ return decaf::lang::Integer::parseInt(
+ properties.getProperty(
+ core::ActiveMQConstants::toString(
+ core::ActiveMQConstants::PARAM_CLOSETIMEOUT ), "15000" ) );
+ }
+
// Check for Connected State and Throw an exception if not.
void enforceConnected() throw ( ConnectorException );
@@ -663,7 +672,8 @@
throw (ConnectorException);
/**
- * Sends a message to the broker to dispose of the given resource.
+ * Sends a message to the broker to dispose of the given resource
+ * using an async oneway call.
* @param objectId The ID of the resource to be released.
* @throw ConnectorException if any problems occur from sending
* the message.
@@ -672,6 +682,17 @@
throw ( ConnectorException );
/**
+ * Sends a message to the broker to dispose of the given resource
+ * using a timed request.
+ * @param objectId The ID of the resource to be released.
+ * @param timeout The time to wait for a response that the object is disposed.
+ * @throw ConnectorException if any problems occur from sending
+ * the message.
+ */
+ void disposeOf( commands::DataStructure* objectId, unsigned int timeout )
+ throw ( ConnectorException );
+
+ /**
* Send the Destination Creation Request to the Broker, alerting it
* that we've created a new Temporary Destination.
* @param tempDestination - The new Temporary Destination