/// <summary>
        /// Initializes a new instance of the <see cref="RequestMessageBase"/> class.
        /// </summary>
        /// <param name="bsonWriterSettings">The bson writer settings.</param>
        protected RequestMessageBase(BsonWriterSettings bsonWriterSettings)
        {
            if(bsonWriterSettings == null)
                throw new ArgumentNullException("bsonWriterSettings");

            _bsonWriterSettings = bsonWriterSettings;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="InsertMessage"/> class.
 /// </summary>
 public InsertMessage(BsonWriterSettings bsonWriterSettings)
 {
     if(bsonWriterSettings == null)
         throw new ArgumentNullException("bsonWriterSettings");
     
     _bsonWriterSettings = bsonWriterSettings;
     Header = new MessageHeader(OpCode.Insert);
 }
예제 #3
0
 /// <summary>
 ///   Initializes a new instance of the <see cref = "BsonWriter" /> class.
 /// </summary>
 /// <param name = "stream">The stream.</param>
 /// <param name = "settings">The settings.</param>
 public BsonWriter(Stream stream, BsonWriterSettings settings)
 {
     if(settings == null)
         throw new ArgumentNullException("settings");
     _stream = stream;
     _descriptor = settings.Descriptor;
     _writer = new BinaryWriter(_stream);
     _buffer = new byte[BufferLength];
     _maxChars = BufferLength/Encoding.UTF8.GetMaxByteCount(1);
 }
예제 #4
0
 protected string Serialize(Document document, BsonWriterSettings settings)
 {
     using(var mem = new MemoryStream())
     {
         var writer = new BsonWriter(mem, settings);
         writer.WriteObject(document);
         writer.Flush();
         return Convert.ToBase64String(mem.ToArray());
     }
 }
예제 #5
0
 /// <summary>
 ///   Initializes a new instance of the <see cref = "BsonWriter" /> class.
 /// </summary>
 /// <param name = "stream">The stream.</param>
 /// <param name = "settings">The settings.</param>
 public BsonWriter(Stream stream, BsonWriterSettings settings)
 {
     if (settings == null)
     {
         throw new ArgumentNullException("settings");
     }
     _stream     = stream;
     _descriptor = settings.Descriptor;
     _writer     = new BinaryWriter(_stream);
     _buffer     = new byte[BufferLength];
     _maxChars   = BufferLength / Encoding.UTF8.GetMaxByteCount(1);
 }
예제 #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QueryMessage"/> class.
 /// </summary>
 /// <param name="bsonWriterSettings">The bson writer settings.</param>
 /// <param name="query">The query.</param>
 /// <param name="fullCollectionName">Full name of the collection.</param>
 /// <param name="numberToReturn">The number to return.</param>
 /// <param name="numberToSkip">The number to skip.</param>
 /// <param name="returnFieldSelector">The return field selector.</param>
 public QueryMessage(BsonWriterSettings bsonWriterSettings,
     object query,
     String fullCollectionName,
     Int32 numberToReturn,
     Int32 numberToSkip,
     object returnFieldSelector)
     : base(bsonWriterSettings)
 {
     Header = new MessageHeader(OpCode.Query);
     Query = query;
     FullCollectionName = fullCollectionName;
     NumberToReturn = numberToReturn;
     NumberToSkip = numberToSkip;
     ReturnFieldSelector = returnFieldSelector;
 }
예제 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UpdateMessage"/> class.
 /// </summary>
 /// <param name="bsonWriterSettings">The bson writer settings.</param>
 public UpdateMessage(BsonWriterSettings bsonWriterSettings)
     : base(bsonWriterSettings){
     Header = new MessageHeader(OpCode.Update);
 }
예제 #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QueryMessage"/> class.
 /// </summary>
 /// <param name="bsonWriterSettings">The bson writer settings.</param>
 /// <param name="query">The query.</param>
 /// <param name="fullCollectionName">Full name of the collection.</param>
 /// <param name="numberToReturn">The number to return.</param>
 /// <param name="numberToSkip">The number to skip.</param>
 public QueryMessage(BsonWriterSettings bsonWriterSettings, object query, String fullCollectionName, Int32 numberToReturn, Int32 numberToSkip)
     : this(bsonWriterSettings, query, fullCollectionName, numberToReturn, numberToSkip, null)
 {
 }
예제 #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QueryMessage"/> class.
 /// </summary>
 /// <param name="bsonWriterSettings">The bson writer settings.</param>
 /// <param name="query">The query.</param>
 /// <param name="fullCollectionName">Full name of the collection.</param>
 public QueryMessage(BsonWriterSettings bsonWriterSettings, object query, String fullCollectionName)
     : this(bsonWriterSettings, query, fullCollectionName, 0, 0){
 }
예제 #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QueryMessage"/> class.
 /// </summary>
 /// <param name="bsonWriterSettings">The bson writer settings.</param>
 public QueryMessage(BsonWriterSettings bsonWriterSettings)
     : base(bsonWriterSettings){
     Header = new MessageHeader(OpCode.Query);
 }
예제 #11
0
파일: Program.cs 프로젝트: prepare/FileDB
 static void Test3()
 {
     //test litebson
     Document doc = new Document();
     doc.Add("first_name", "test_firstname");
     doc.Add("last_name", "test_lastname"); 
     BsonWriterSettings setting = new BsonWriterSettings();
     byte[] outputBuffer;
     using (MemoryStream ms = new MemoryStream())
     {
         BsonWriter writer = new BsonWriter(ms, setting);
         writer.WriteObject(doc);
         outputBuffer = ms.ToArray();
         ms.Close();
     } 
 }