// protected methods
        /// <summary>
        /// Creates a clone of the settings.
        /// </summary>
        /// <returns>A clone of the settings.</returns>
        protected override BsonWriterSettings CloneImplementation()
        {
            var clone = new BsonBinaryWriterSettings
            {
                CloseOutput = _closeOutput,
                Encoding    = _encoding,
                FixOldBinarySubTypeOnOutput = _fixOldBinarySubTypeOnOutput,
                GuidRepresentation          = GuidRepresentation,
                MaxDocumentSize             = _maxDocumentSize,
                MaxSerializationDepth       = MaxSerializationDepth
            };

            return(clone);
        }
        /// <summary>
        /// Initializes a new instance of the BsonBinaryWriter 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">Optional BsonBinaryWriter settings.</param>
        /// <exception cref="System.ArgumentNullException">
        /// encoder
        /// or
        /// settings
        /// </exception>
        public BsonBinaryWriter(BsonBuffer buffer, bool disposeBuffer, BsonBinaryWriterSettings settings)
            : base(settings)
        {
            if (buffer == null)
            {
                throw new ArgumentNullException("encoder");
            }

            _buffer               = buffer;
            _disposeBuffer        = disposeBuffer;
            _binaryWriterSettings = settings; // already frozen by base class
            _maxDocumentSizeStack.Push(_binaryWriterSettings.MaxDocumentSize);

            _context = null;
            State    = BsonWriterState.Initial;
        }
        // constructors
        /// <summary>
        /// Initializes a new instance of the BsonBinaryWriter class.
        /// </summary>
        /// <param name="stream">A stream.</param>
        /// <param name="buffer">A BsonBuffer.</param>
        /// <param name="settings">Optional BsonBinaryWriter settings.</param>
        public BsonBinaryWriter(Stream stream, BsonBuffer buffer, BsonBinaryWriterSettings settings)
            : base(settings)
        {
            _stream = stream;
            if (buffer == null)
            {
                _buffer = new BsonBuffer();
                _disposeBuffer = true; // only call Dispose if we allocated the buffer
            }
            else
            {
                _buffer = buffer;
                _disposeBuffer = false;
            }
            _binaryWriterSettings = settings; // already frozen by base class

            _context = null;
            State = BsonWriterState.Initial;
        }
Beispiel #4
0
        // constructors
        /// <summary>
        /// Initializes a new instance of the BsonBinaryWriter class.
        /// </summary>
        /// <param name="stream">A stream.</param>
        /// <param name="buffer">A BsonBuffer.</param>
        /// <param name="settings">Optional BsonBinaryWriter settings.</param>
        public BsonBinaryWriter(Stream stream, BsonBuffer buffer, BsonBinaryWriterSettings settings)
            : base(settings)
        {
            _stream = stream;
            if (buffer == null)
            {
                _buffer        = new BsonBuffer();
                _disposeBuffer = true; // only call Dispose if we allocated the buffer
            }
            else
            {
                _buffer        = buffer;
                _disposeBuffer = false;
            }
            _binaryWriterSettings = settings; // already frozen by base class

            _context = null;
            State    = BsonWriterState.Initial;
        }
 // protected methods
 /// <summary>
 /// Creates a clone of the settings.
 /// </summary>
 /// <returns>A clone of the settings.</returns>
 protected override BsonWriterSettings CloneImplementation()
 {
     var clone = new BsonBinaryWriterSettings
     {
         CloseOutput = _closeOutput,
         Encoding = _encoding,
         FixOldBinarySubTypeOnOutput = _fixOldBinarySubTypeOnOutput,
         GuidRepresentation = GuidRepresentation,
         MaxDocumentSize = _maxDocumentSize,
         MaxSerializationDepth = MaxSerializationDepth
     };
     return clone;
 }
Beispiel #6
0
 /// <summary>
 /// Creates a BsonWriter to a BSON Stream.
 /// </summary>
 /// <param name="stream">A Stream.</param>
 /// <param name="settings">Optional BsonBinaryWriterSettings.</param>
 /// <returns>A BsonWriter.</returns>
 public static BsonWriter Create(Stream stream, BsonBinaryWriterSettings settings)
 {
     return(new BsonBinaryWriter(stream, null, BsonBinaryWriterSettings.Defaults));
 }
Beispiel #7
0
 /// <summary>
 /// Creates a BsonWriter to a BsonBuffer.
 /// </summary>
 /// <param name="buffer">A BsonBuffer.</param>
 /// <param name="settings">Optional BsonBinaryWriterSettings.</param>
 /// <returns>A BsonWriter.</returns>
 public static BsonWriter Create(BsonBuffer buffer, BsonBinaryWriterSettings settings)
 {
     return(new BsonBinaryWriter(null, buffer, settings));
 }
Beispiel #8
0
 /// <summary>
 /// Creates a BsonWriter to a BSON Stream.
 /// </summary>
 /// <param name="stream">A Stream.</param>
 /// <param name="settings">Optional BsonBinaryWriterSettings.</param>
 /// <returns>A BsonWriter.</returns>
 public static BsonWriter Create(Stream stream, BsonBinaryWriterSettings settings)
 {
     return new BsonBinaryWriter(stream, null, BsonBinaryWriterSettings.Defaults);
 }
Beispiel #9
0
 /// <summary>
 /// Creates a BsonWriter to a BsonBuffer.
 /// </summary>
 /// <param name="buffer">A BsonBuffer.</param>
 /// <param name="settings">Optional BsonBinaryWriterSettings.</param>
 /// <returns>A BsonWriter.</returns>
 public static BsonWriter Create(BsonBuffer buffer, BsonBinaryWriterSettings settings)
 {
     return new BsonBinaryWriter(null, buffer, settings);
 }
 // constructors
 /// <summary>
 /// Initializes a new instance of the BsonBinaryWriter class.
 /// </summary>
 /// <param name="stream">A stream.</param>
 /// <param name="buffer">A BsonBuffer.</param>
 /// <param name="settings">Optional BsonBinaryWriter settings.</param>
 public BsonBinaryWriter(Stream stream, BsonBuffer buffer, BsonBinaryWriterSettings settings)
     : this(buffer ?? new BsonBuffer(), buffer == null, settings)
 {
     _stream = stream;
 }