public MessageLogRecord StoreMessage(int queueId, long queueOffset, Message message) { var record = new MessageLogRecord( message.Topic, message.Code, message.Body, queueId, queueOffset, message.CreatedTime, DateTime.Now, message.Tag); _chunkWriter.Write(record); return record; }
private MessageLogRecord ReadMessage(byte[] recordBuffer) { var record = new MessageLogRecord(); record.ReadFrom(recordBuffer); return record; }
private void PersistMessages(MessageLogRecord message) { _chunkWriter.Write(message); message.OnPersisted(); }
public void StoreMessageAsync(IQueue queue, Message message, Action<MessageLogRecord, object> callback, object parameter) { lock (_lockObj) { var record = new MessageLogRecord( message.Topic, message.Code, message.Body, queue.QueueId, queue.NextOffset, message.CreatedTime, DateTime.Now, message.Tag, message.ProducerAddress ?? string.Empty, callback, parameter); _bufferQueue.EnqueueMessage(record); queue.IncrementNextOffset(); } }