You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by js...@apache.org on 2006/10/18 14:32:59 UTC

svn commit: r465235 - in /incubator/activemq/activemq-dotnet/trunk/src/main/csharp: ActiveMQ/MessageConsumer.cs ActiveMQ/Session.cs NMS/ISession.cs

Author: jstrachan
Date: Wed Oct 18 05:32:58 2006
New Revision: 465235

URL: http://svn.apache.org/viewvc?view=rev&rev=465235
Log:
added a bunch of default properties onto ISession to allow consumers to be configured such as retroactive or exclusive consumers etc

Modified:
    incubator/activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/MessageConsumer.cs
    incubator/activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/Session.cs
    incubator/activemq/activemq-dotnet/trunk/src/main/csharp/NMS/ISession.cs

Modified: incubator/activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/MessageConsumer.cs
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/MessageConsumer.cs?view=diff&rev=465235&r1=465234&r2=465235
==============================================================================
--- incubator/activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/MessageConsumer.cs (original)
+++ incubator/activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/MessageConsumer.cs Wed Oct 18 05:32:58 2006
@@ -81,6 +81,7 @@
             get { return redeliveryTimeout; }
             set { redeliveryTimeout = value; }
         }
+
         
         public void RedeliverRolledBackMessages()
         {

Modified: incubator/activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/Session.cs
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/Session.cs?view=diff&rev=465235&r1=465234&r2=465235
==============================================================================
--- incubator/activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/Session.cs (original)
+++ incubator/activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/Session.cs Wed Oct 18 05:32:58 2006
@@ -32,6 +32,11 @@
         private long consumerCounter;
         private long producerCounter;
         private int prefetchSize = 1000;
+        private int maximumPendingMessageLimit;
+        private byte priority;
+        private bool dispatchAsync;
+        private bool exclusive;
+        private bool retroactive;
         private IDictionary consumers = Hashtable.Synchronized(new Hashtable());
         private TransactionContext transactionContext;
         
@@ -43,6 +48,41 @@
             transactionContext = new TransactionContext(this);
         }
         
+        public int PrefetchSize
+        {
+            get { return prefetchSize; }
+            set { this.prefetchSize = value; }            
+        }
+
+        public int MaximumPendingMessageLimit
+        {
+            get { return maximumPendingMessageLimit; }
+            set { this.maximumPendingMessageLimit = value; }            
+        }
+
+        public bool DispatchAsync
+        {
+            get { return dispatchAsync; }
+            set { this.dispatchAsync = value; }            
+        }
+
+        public bool Exclusive
+        {
+            get { return exclusive; }
+            set { this.exclusive = value; }            
+        }
+
+        public bool Retroactive
+        {
+            get { return retroactive; }
+            set { this.retroactive = value; }            
+        }
+
+        public byte Priority
+        {
+            get { return priority; }
+            set { this.priority = value; }            
+        }
         
         public void Dispose()
         {
@@ -316,6 +356,10 @@
             answer.Destination = ActiveMQDestination.Transform(destination);
             answer.Selector = selector;
             answer.PrefetchSize = prefetchSize;
+            answer.Priority = priority;
+            answer.Exclusive = exclusive;
+            answer.DispatchAsync = dispatchAsync;
+            answer.Retroactive = retroactive;
             
             // If the destination contained a URI query, then use it to set public properties
             // on the ConsumerInfo

Modified: incubator/activemq/activemq-dotnet/trunk/src/main/csharp/NMS/ISession.cs
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-dotnet/trunk/src/main/csharp/NMS/ISession.cs?view=diff&rev=465235&r1=465234&r2=465235
==============================================================================
--- incubator/activemq/activemq-dotnet/trunk/src/main/csharp/NMS/ISession.cs (original)
+++ incubator/activemq/activemq-dotnet/trunk/src/main/csharp/NMS/ISession.cs Wed Oct 18 05:32:58 2006
@@ -14,110 +14,136 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-namespace NMS
-{
-	/// <summary>
-	/// Represents a single unit of work on an IConnection.
-	/// So the ISession can be used to perform transactional receive and sends
-	/// </summary>
-	public interface ISession : System.IDisposable
-    {
-        
+namespace NMS {
         /// <summary>
-        /// Creates a producer of messages
+        /// Represents a single unit of work on an IConnection.
+        /// So the ISession can be used to perform transactional receive and sends
         /// </summary>
-        IMessageProducer CreateProducer();
-        
-        /// <summary>
-        /// Creates a producer of messages on a given destination
-        /// </summary>
-        IMessageProducer CreateProducer(IDestination destination);
-        
-        /// <summary>
-        /// Creates a consumer of messages on a given destination
-        /// </summary>
-        IMessageConsumer CreateConsumer(IDestination destination);
-        
-        /// <summary>
-        /// Creates a consumer of messages on a given destination with a selector
-        /// </summary>
-        IMessageConsumer CreateConsumer(IDestination destination, string selector);
-        
-        /// <summary>
-        /// Creates a named durable consumer of messages on a given destination with a selector
-        /// </summary>
-        IMessageConsumer CreateDurableConsumer(ITopic destination, string name, string selector, bool noLocal);
-		
-        /// <summary>
-        /// Returns the queue for the given name
-        /// </summary>
-        IQueue GetQueue(string name);
-        
-        /// <summary>
-        /// Returns the topic for the given name
-        /// </summary>
-        ITopic GetTopic(string name);
-        
-        
-        /// <summary>
-        /// Creates a temporary queue
-        /// </summary>
-        ITemporaryQueue CreateTemporaryQueue();
-		
-        /// <summary>
-        /// Creates a temporary topic
-        /// </summary>
-        ITemporaryTopic CreateTemporaryTopic();
-		
-        
-        // Factory methods to create messages
-        
-        /// <summary>
-        /// Creates a new message with an empty body
-        /// </summary>
-        IMessage CreateMessage();
-        
-        /// <summary>
-        /// Creates a new text message with an empty body
-        /// </summary>
-        ITextMessage CreateTextMessage();
-        
-        /// <summary>
-        /// Creates a new text message with the given body
-        /// </summary>
-        ITextMessage CreateTextMessage(string text);
-        
-        /// <summary>
-        /// Creates a new Map message which contains primitive key and value pairs
-        /// </summary>
-        IMapMessage CreateMapMessage();
-        
-        /// <summary>
-        /// Creates a new binary message
-        /// </summary>
-        IBytesMessage CreateBytesMessage();
-        
-        /// <summary>
-        /// Creates a new binary message with the given body
-        /// </summary>
-        IBytesMessage CreateBytesMessage(byte[] body);
-		
-		
-        // Transaction methods
-        
-        /// <summary>
-        /// If this is a transactional session then commit all message
-        /// send and acknowledgements for producers and consumers in this session
-        /// </summary>
-        void Commit();
-        
-        /// <summary>
-        /// If this is a transactional session then rollback all message
-        /// send and acknowledgements for producers and consumers in this session
-        /// </summary>
-        void Rollback();
-        
-    }
-}
+        public interface ISession : System.IDisposable
+        {
+
+                /// <summary>
+                /// Creates a producer of messages
+                /// </summary>
+                IMessageProducer CreateProducer();
+
+                /// <summary>
+                /// Creates a producer of messages on a given destination
+                /// </summary>
+                IMessageProducer CreateProducer(IDestination destination);
+
+                /// <summary>
+                /// Creates a consumer of messages on a given destination
+                /// </summary>
+                IMessageConsumer CreateConsumer(IDestination destination);
+
+                /// <summary>
+                /// Creates a consumer of messages on a given destination with a selector
+                /// </summary>
+                IMessageConsumer CreateConsumer(IDestination destination, string selector);
+
+                /// <summary>
+                /// Creates a named durable consumer of messages on a given destination with a selector
+                /// </summary>
+                IMessageConsumer CreateDurableConsumer(ITopic destination, string name, string selector, bool noLocal);
+
+                /// <summary>
+                /// Returns the queue for the given name
+                /// </summary>
+                IQueue GetQueue(string name);
+
+                /// <summary>
+                /// Returns the topic for the given name
+                /// </summary>
+                ITopic GetTopic(string name);
+
+
+                /// <summary>
+                /// Creates a temporary queue
+                /// </summary>
+                ITemporaryQueue CreateTemporaryQueue();
+
+                /// <summary>
+                /// Creates a temporary topic
+                /// </summary>
+                ITemporaryTopic CreateTemporaryTopic();
+
+
+                // Factory methods to create messages
+
+                /// <summary>
+                /// Creates a new message with an empty body
+                /// </summary>
+                IMessage CreateMessage();
+
+                /// <summary>
+                /// Creates a new text message with an empty body
+                /// </summary>
+                ITextMessage CreateTextMessage();
 
+                /// <summary>
+                /// Creates a new text message with the given body
+                /// </summary>
+                ITextMessage CreateTextMessage(string text);
 
+                /// <summary>
+                /// Creates a new Map message which contains primitive key and value pairs
+                /// </summary>
+                IMapMessage CreateMapMessage();
+
+                /// <summary>
+                /// Creates a new binary message
+                /// </summary>
+                IBytesMessage CreateBytesMessage();
+
+                /// <summary>
+                /// Creates a new binary message with the given body
+                /// </summary>
+                IBytesMessage CreateBytesMessage(byte[] body);
+
+
+                // Transaction methods
+
+                /// <summary>
+                /// If this is a transactional session then commit all message
+                /// send and acknowledgements for producers and consumers in this session
+                /// </summary>
+                void Commit();
+
+                /// <summary>
+                /// If this is a transactional session then rollback all message
+                /// send and acknowledgements for producers and consumers in this session
+                /// </summary>
+                void Rollback();
+
+
+
+
+                /// <summary>
+                /// Sets the prefetch size, the maximum number of messages a broker will dispatch to consumers
+                /// until acknowledgements are received.
+                /// </summary>
+                int PrefetchSize { get; set; } 
+
+                /// <summary>
+                /// Enables or disables whether asynchronous dispatch should be used by the broker
+                /// </summary>
+                bool DispatchAsync { get; set; } 
+
+                /// <summary>
+                /// Enables or disables exclusive consumers when using queues. An exclusive consumer means
+                /// only one instance of a consumer is allowed to process messages on a queue to preserve order
+                /// </summary>
+                bool Exclusive { get; set; } 
+
+                /// <summary>
+                /// Enables or disables retroactive mode for consumers; i.e. do they go back in time or not?
+                /// </summary>
+                bool Retroactive { get; set; } 
+
+                /// <summary>
+                /// Sets the default consumer priority for consumers
+                /// </summary>
+                byte Priority { get; set; } 
+        }
+}