AMQNET-735 Add AsyncMessageListener to Consumer API
diff --git a/src/nms-api/IMessageConsumer.cs b/src/nms-api/IMessageConsumer.cs
index 95a3780..c2db8d9 100644
--- a/src/nms-api/IMessageConsumer.cs
+++ b/src/nms-api/IMessageConsumer.cs
@@ -15,14 +15,20 @@
* limitations under the License.
*/
+using System.Threading;
using System.Threading.Tasks;
namespace Apache.NMS
{
/// <summary>
- /// A delegate that can receive messages async.
+ /// A delegate that can receive messages.
/// </summary>
public delegate void MessageListener(IMessage message);
+
+ /// <summary>
+ /// A delegate that can receive messages asynchronously.
+ /// </summary>
+ public delegate Task AsyncMessageListener(IMessage message, CancellationToken cancellationToken);
/// <summary>
/// A delegate that a client can register that will be called each time a consumer dispatches a message
@@ -69,11 +75,16 @@
IMessage ReceiveNoWait();
/// <summary>
- /// An asynchronous listener which can be used to consume messages asynchronously
+ /// An listener which can be used to consume messages
/// </summary>
event MessageListener Listener;
/// <summary>
+ /// An asynchronous listener which can be used to consume messages asynchronously
+ /// </summary>
+ event AsyncMessageListener AsyncListener;
+
+ /// <summary>
/// Closes the message consumer.
/// </summary>
/// <remarks>
diff --git a/src/nms-api/INMSConsumer.cs b/src/nms-api/INMSConsumer.cs
index 89f3ed6..1b3f800 100644
--- a/src/nms-api/INMSConsumer.cs
+++ b/src/nms-api/INMSConsumer.cs
@@ -68,9 +68,14 @@
string MessageSelector { get; }
/// <summary>
- /// An asynchronous listener which can be used to consume messages asynchronously
+ /// A listener which can be used to consume messages
/// </summary>
event MessageListener Listener;
+
+ /// <summary>
+ /// An asynchronous listener which can be used to consume messages asynchronously
+ /// </summary>
+ event AsyncMessageListener AsyncListener;
/// <summary>
/// Closes the message consumer.