using System;
namespace ZeroLevel.Services.Logging
{
///
/// Очередь сообщений для вывода в лог
///
internal interface ILogMessageBuffer : IDisposable
{
///
/// Количество сообщений в очереди
///
long Count { get; }
///
/// Запись сообщения в очередь
///
void Push(LogLevel level, string message);
///
/// Запрос сообщения из очереди для вывода в лог, подразумевается блокирующая работа метода,
/// пока очередь пустая, метод ожидает появления сообщения не возвращая результат.
///
Tuple Take();
}
}