blob: 0127a98a4a529e797eb7892419414f5bf33e52b7 [file] [log] [blame]
using System;
using System.Threading;
using System.Threading.Tasks;
namespace DotPulsar.Abstractions
{
/// <summary>
/// A producer abstraction.
/// </summary>
public interface IProducer : IStateChanged<ProducerState>, IAsyncDisposable
{
/// <summary>
/// Sends a message.
/// </summary>
ValueTask<MessageId> Send(ReadOnlyMemory<byte> data, CancellationToken cancellationToken = default);
/// <summary>
/// Sends a message and metadata.
/// </summary>
ValueTask<MessageId> Send(MessageMetadata metadata, ReadOnlyMemory<byte> data, CancellationToken cancellationToken = default);
}
}