コード例 #1
0
ファイル: InsertMessage.cs プロジェクト: npenin/uss
        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);
                    }
                }
            }
        }
コード例 #2
0
ファイル: RequestMessageBase.cs プロジェクト: npenin/uss
 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);
     }
 }