Exemplo n.º 1
0
 public PacketLogWriter(Stream stream, bool ownsStream, LogHeader header)
 {
     _stream     = stream;
     _ownsStream = ownsStream;
     BlockHelper.WriteBlock(_stream, BlockType.MagicBytes, new ArraySegment <byte>(LogHelper.Encoding.GetBytes(LogHelper.MagicBytes)));
     BlockHelper.WriteBlock(_stream, BlockType.Region, new ArraySegment <byte>(Encoding.UTF8.GetBytes(header.Region)));
     BlockHelper.WriteBlock(_stream, BlockType.Start, new ArraySegment <byte>(new byte[0]));
 }
Exemplo n.º 2
0
        public void Append(Message message)
        {
            if (_stream == null)
            {
                throw new ObjectDisposedException("LogWriter");
            }

            if (message.Time != _time)
            {
                BlockHelper.WriteBlock(_stream, BlockType.Timestamp, new ArraySegment <byte>(LogHelper.DateTimeToBytes(message.Time)));
                _time = message.Time;
            }

            var blockType = message.Direction == MessageDirection.ClientToServer ? BlockType.Client : BlockType.Server;

            BlockHelper.WriteBlock(_stream, blockType, message.Data);

            _stream.Flush();
        }