public void Write(Stream stream, TextWriter logger) { MessageHeader header = this.Header; BufferedStream bstream = new BufferedStream(stream); BsonWriter bwriter = new BsonWriter(bstream); ChunkMessage(bwriter); foreach (MessageChunk chunk in chunks) { WriteChunk(bstream, chunk); } if (logger != null) { Json.JsonWriter writer = new Evaluant.Uss.MongoDB.Json.JsonWriter(logger); foreach(var chunk in chunks) { foreach(var entity in chunk.Documents) { writer.Write(entity); } } } }
public void Write (Stream stream,TextWriter logger){ MessageHeader header = this.Header; BufferedStream bstream = new BufferedStream(stream); BinaryWriter writer = new BinaryWriter(bstream); BsonWriter bwriter = new BsonWriter(bstream); Header.MessageLength += this.CalculateBodySize(bwriter); if(Header.MessageLength > MessageBase.MaximumMessageSize){ throw new MongoException("Maximum message length exceeded"); } writer.Write(header.MessageLength); writer.Write(header.RequestId); writer.Write(header.ResponseTo); writer.Write((int)header.OpCode); writer.Flush(); WriteBody(bwriter); bwriter.Flush(); if (logger != null) { Json.JsonWriter jwriter = new Evaluant.Uss.MongoDB.Json.JsonWriter(logger); WriteBody(jwriter); jwriter.WriteString(Environment.NewLine); } }