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();
     }
 }