You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jg...@apache.org on 2008/12/09 19:56:14 UTC

svn commit: r724827 - in /activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp: Commands/DestinationInfo.cs Session.cs State/ConnectionState.cs

Author: jgomes
Date: Tue Dec  9 10:56:14 2008
New Revision: 724827

URL: http://svn.apache.org/viewvc?rev=724827&view=rev
Log:
Add support in ISession to delete destinations, both temporary and standard.  This allows for deterministic deletion of destinations without having to close a connection to get temporary destinations to be deleted.
Fixes [AMQNET-129] and AMQNET-129].
(See https://issues.apache.org/activemq/browse/AMQNET-129)
(See https://issues.apache.org/activemq/browse/AMQNET-123)

Modified:
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Commands/DestinationInfo.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Session.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Commands/DestinationInfo.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Commands/DestinationInfo.cs?rev=724827&r1=724826&r2=724827&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Commands/DestinationInfo.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Commands/DestinationInfo.cs Tue Dec  9 10:56:14 2008
@@ -36,7 +36,7 @@
 		public const byte REMOVE_OPERATION_TYPE = 1;
 
 		ConnectionId connectionId;
-		ActiveMQDestination destination;
+		IDestination destination;
 		byte operationType;
 		long timeout;
 		BrokerId[] brokerPath;
@@ -67,7 +67,7 @@
 			set { this.connectionId = value; }
 		}
 
-		public ActiveMQDestination Destination
+		public IDestination Destination
 		{
 			get { return destination; }
 			set { this.destination = value; }

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Session.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Session.cs?rev=724827&r1=724826&r2=724827&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Session.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Session.cs Tue Dec  9 10:56:14 2008
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 using System;
 using System.Collections;
 using System.Threading;
 using Apache.NMS.ActiveMQ.Commands;
-using Apache.NMS;
 using Apache.NMS.Util;
 
 namespace Apache.NMS.ActiveMQ
@@ -41,7 +41,7 @@
 		private long producerCounter;
 		internal bool startedAsyncDelivery = false;
 		private bool disposed = false;
-        private bool closed = false;
+		private bool closed = false;
 		private bool closing = false;
 		private TimeSpan MAX_THREAD_WAIT = TimeSpan.FromMilliseconds(30000);
 
@@ -326,6 +326,18 @@
 			return answer;
 		}
 
+		/// <summary>
+		/// Delete a destination (Queue, Topic, Temp Queue, Temp Topic).
+		/// </summary>
+		public void DeleteDestination(IDestination destination)
+		{
+			DestinationInfo command = new DestinationInfo();
+			command.ConnectionId = Connection.ConnectionId;
+			command.OperationType = DestinationInfo.REMOVE_OPERATION_TYPE; // 1 is remove
+			command.Destination = destination;
+
+			this.DoSend(command);
+		}
 
 		public IMessage CreateMessage()
 		{
@@ -334,7 +346,6 @@
 			return answer;
 		}
 
-
 		public ITextMessage CreateTextMessage()
 		{
 			ActiveMQTextMessage answer = new ActiveMQTextMessage();
@@ -445,17 +456,7 @@
 		{
 			DestinationInfo command = new DestinationInfo();
 			command.ConnectionId = Connection.ConnectionId;
-			command.OperationType = DestinationInfo.ADD_OPERATION_TYPE ; // 0 is add
-			command.Destination = tempDestination;
-
-			this.DoSend(command);
-		}
-
-		protected void DestroyTemporaryDestination(ActiveMQDestination tempDestination)
-		{
-			DestinationInfo command = new DestinationInfo();
-			command.ConnectionId = Connection.ConnectionId;
-			command.OperationType = DestinationInfo.REMOVE_OPERATION_TYPE ; // 1 is remove
+			command.OperationType = DestinationInfo.ADD_OPERATION_TYPE; // 0 is add
 			command.Destination = tempDestination;
 
 			this.DoSend(command);

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs?rev=724827&r1=724826&r2=724827&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs Tue Dec  9 10:56:14 2008
@@ -57,7 +57,7 @@
 			tempDestinations.Add(info);
 		}
 
-		public void removeTempDestination(ActiveMQDestination destination)
+		public void removeTempDestination(IDestination destination)
 		{
 			for(int i = tempDestinations.Count - 1; i >= 0; i--)
 			{