1
0
mirror of synced 2024-06-26 14:27:38 +00:00
Tapeti/Tapeti.Transient/TransientGenericBinding.cs
Mark van Renswoude bcdb376256 Fixed queue arguments error due to wrong value types
Added test for publish overflows
Removed support for Unity Container
Changed third party package references to ranges
Fixed XML documentation
2022-11-22 13:20:47 +01:00

61 lines
1.5 KiB
C#

using System;
using System.Threading.Tasks;
using Tapeti.Config;
namespace Tapeti.Transient
{
/// <summary>
/// Implements a binding for transient request response messages.
/// Register this binding using the WithTransient config extension method.
/// </summary>
internal class TransientGenericBinding : IBinding
{
private readonly TransientRouter router;
private readonly string dynamicQueuePrefix;
/// <inheritdoc />
public string QueueName { get; private set; }
/// <inheritdoc />
public QueueType QueueType => QueueType.Dynamic;
/// <summary>
/// </summary>
public TransientGenericBinding(TransientRouter router, string dynamicQueuePrefix)
{
this.router = router;
this.dynamicQueuePrefix = dynamicQueuePrefix;
}
/// <inheritdoc />
public async ValueTask Apply(IBindingTarget target)
{
QueueName = await target.BindDynamicDirect(dynamicQueuePrefix, null);
router.TransientResponseQueueName = QueueName;
}
/// <inheritdoc />
public bool Accept(Type messageClass)
{
return true;
}
/// <inheritdoc />
public ValueTask Invoke(IMessageContext context)
{
router.HandleMessage(context);
return default;
}
/// <inheritdoc />
public ValueTask Cleanup(IMessageContext context, ConsumeResult consumeResult)
{
return default;
}
}
}