using System;
using System.Threading;
using System.Threading.Tasks;
using xEventService.Models;
namespace xEventService.Interfaces
{
///
/// RabbitMQ Producer Service Implementation ...
///
public interface IXRabbitMQProducerService : IDisposable
{
///
/// Sending Message with Full Request Descriptor ...
///
///
/// an Instance of .
/// Topic is used as Exchange Name ...
///
///
///
Task SendMessageAsync(
XEventRequest request,
CancellationToken cancellationToken = default
);
///
/// Sending a Message to Default Exchange ...
///
///
/// an Instance of ...
///
///
/// Target Exchange Name. if empty, uses default from configuration ...
///
///
/// Routing Key for message routing ...
///
///
///
Task SendMessageAsync(
XEventMessage message,
string exchange = null,
string routingKey = null,
CancellationToken cancellationToken = default
);
}
}