/// <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); }
// 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) { }
/// <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; }