Example #1
0
        /// <summary>
        /// Creates a BsonReader for a BSON Stream.
        /// </summary>
        /// <param name="stream">The BSON Stream.</param>
        /// <param name="settings">Optional reader settings.</param>
        /// <returns>A BsonReader.</returns>
        public static BsonReader Create(Stream stream, BsonBinaryReaderSettings settings)
        {
            var reader = new BsonBinaryReader(null, settings);

            reader.Buffer.LoadFrom(stream);
            return(reader);
        }
        /// <summary>
        /// Creates a BsonReader for a BSON Stream.
        /// </summary>
        /// <param name="stream">The BSON Stream.</param>
        /// <param name="settings">Optional reader settings.</param>
        /// <returns>A BsonReader.</returns>
        public static BsonReader Create(Stream stream, BsonBinaryReaderSettings settings)
        {
            var byteBuffer = ByteBufferFactory.LoadFrom(stream);

            byteBuffer.MakeReadOnly();
            return(new BsonBinaryReader(new BsonBuffer(byteBuffer, true), true, settings));
        }
        /// <summary>
        /// Initializes a new instance of the BsonBinaryReader class.
        /// </summary>
        /// <param name="buffer">A BsonBuffer.</param>
        /// <param name="disposeBuffer">if set to <c>true</c> this BsonBinaryReader will own the buffer and when Dispose is called the buffer will be Disposed also.</param>
        /// <param name="settings">A BsonBinaryReaderSettings.</param>
        /// <exception cref="System.ArgumentNullException">
        /// buffer
        /// or
        /// settings
        /// </exception>
        public BsonBinaryReader(BsonBuffer buffer, bool disposeBuffer, BsonBinaryReaderSettings settings)
            : base(settings)
        {
            if (buffer == null)
            {
                throw new ArgumentNullException("buffer");
            }

            _buffer               = buffer;
            _disposeBuffer        = disposeBuffer;
            _binaryReaderSettings = settings; // already frozen by base class

            _context = new BsonBinaryReaderContext(null, ContextType.TopLevel, 0, 0);
        }
        // protected methods
        /// <summary>
        /// Creates a clone of the settings.
        /// </summary>
        /// <returns>A clone of the settings.</returns>
        protected override BsonReaderSettings CloneImplementation()
        {
            var clone = new BsonBinaryReaderSettings
            {
                CloseInput = _closeInput,
                Encoding   = _encoding,
                FixOldBinarySubTypeOnInput    = _fixOldBinarySubTypeOnInput,
                FixOldDateTimeMaxValueOnInput = _fixOldDateTimeMaxValueOnInput,
                GuidRepresentation            = GuidRepresentation,
                MaxDocumentSize = _maxDocumentSize
            };

            return(clone);
        }
Example #5
0
 // constructors
 /// <summary>
 /// Initializes a new instance of the BsonBinaryReader class.
 /// </summary>
 /// <param name="buffer">A BsonBuffer.</param>
 /// <param name="settings">A BsonBinaryReaderSettings.</param>
 public BsonBinaryReader(BsonBuffer buffer, BsonBinaryReaderSettings settings)
     : base(settings)
 {
     if (buffer == null)
     {
         _buffer        = new BsonBuffer();
         _disposeBuffer = true; // only call Dispose if we allocated the buffer
     }
     else
     {
         _buffer        = buffer;
         _disposeBuffer = false;
     }
     _binaryReaderSettings = settings; // already frozen by base class
     _context = new BsonBinaryReaderContext(null, ContextType.TopLevel, 0, 0);
 }
 // constructors
 /// <summary>
 /// Initializes a new instance of the BsonBinaryReader class.
 /// </summary>
 /// <param name="buffer">A BsonBuffer.</param>
 /// <param name="settings">A BsonBinaryReaderSettings.</param>
 public BsonBinaryReader(BsonBuffer buffer, BsonBinaryReaderSettings settings)
     : this(buffer ?? new BsonBuffer(), buffer == null, settings)
 {
 }
Example #7
0
 /// <summary>
 /// Creates a BsonReader for a BsonBuffer.
 /// </summary>
 /// <param name="buffer">The BsonBuffer.</param>
 /// <param name="settings">Optional reader settings.</param>
 /// <returns>A BsonReader.</returns>
 public static BsonReader Create(BsonBuffer buffer, BsonBinaryReaderSettings settings)
 {
     return(new BsonBinaryReader(buffer, settings));
 }
 // protected methods
 /// <summary>
 /// Creates a clone of the settings.
 /// </summary>
 /// <returns>A clone of the settings.</returns>
 protected override BsonReaderSettings CloneImplementation()
 {
     var clone = new BsonBinaryReaderSettings
     {
         CloseInput = _closeInput,
         Encoding = _encoding,
         FixOldBinarySubTypeOnInput = _fixOldBinarySubTypeOnInput,
         FixOldDateTimeMaxValueOnInput = _fixOldDateTimeMaxValueOnInput,
         GuidRepresentation = GuidRepresentation,
         MaxDocumentSize = _maxDocumentSize
     };
     return clone;
 }