blob: b59b75bc6df8f2c082bd4afde05c3b39ce7854b6 [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>, IDisposable
{
/// <summary>
/// Sends a message
/// </summary>
Task<MessageId> Send(ReadOnlyMemory<byte> data, CancellationToken cancellationToken = default);
/// <summary>
/// Sends a message and metadata
/// </summary>
Task<MessageId> Send(MessageMetadata metadata, ReadOnlyMemory<byte> data, CancellationToken cancellationToken = default);
}
}