/// <summary> /// Writes the start of a BSON document to the writer. /// </summary> public override void WriteStartDocument() { if (disposed) { throw new ObjectDisposedException("BsonBinaryWriter"); } if (state != BsonWriterState.Initial && state != BsonWriterState.Value && state != BsonWriterState.ScopeDocument && state != BsonWriterState.Done) { var message = string.Format("WriteStartDocument cannot be called when State is: {0}", state); throw new InvalidOperationException(message); } switch (state) { case BsonWriterState.Initial: case BsonWriterState.Done: context = new BsonDocumentWriterContext(null, ContextType.Document, topLevelDocument); break; case BsonWriterState.Value: context = new BsonDocumentWriterContext(context, ContextType.Document, new BsonDocument()); break; case BsonWriterState.ScopeDocument: context = new BsonDocumentWriterContext(context, ContextType.ScopeDocument, new BsonDocument()); break; default: throw new BsonInternalException("Unexpected state"); } state = BsonWriterState.Name; }
/// <summary> /// Initializes a new instance of the BsonDocumentWriter class. /// </summary> /// <param name="topLevelDocument">The document to write to (normally starts out as an empty document).</param> public BsonDocumentWriter( BsonDocument topLevelDocument ) { this.topLevelDocument = topLevelDocument; context = null; state = BsonWriterState.Initial; }
/// <summary> /// Writes the start of a BSON document to the writer. /// </summary> public override void WriteStartDocument() { if (disposed) { throw new ObjectDisposedException("BsonDocumentWriter"); } if (state != BsonWriterState.Initial && state != BsonWriterState.Value && state != BsonWriterState.ScopeDocument && state != BsonWriterState.Done) { ThrowInvalidState("WriteStartDocument", BsonWriterState.Initial, BsonWriterState.Value, BsonWriterState.ScopeDocument, BsonWriterState.Done); } switch (state) { case BsonWriterState.Initial: case BsonWriterState.Done: context = new BsonDocumentWriterContext(null, ContextType.Document, topLevelDocument); break; case BsonWriterState.Value: context = new BsonDocumentWriterContext(context, ContextType.Document, new BsonDocument()); break; case BsonWriterState.ScopeDocument: context = new BsonDocumentWriterContext(context, ContextType.ScopeDocument, new BsonDocument()); break; default: throw new BsonInternalException("Unexpected state."); } state = BsonWriterState.Name; }
/// <summary> /// Closes the writer. /// </summary> public override void Close() { // Close can be called on Disposed objects if (state != BsonWriterState.Closed) { context = null; state = BsonWriterState.Closed; } }
// constructors /// <summary> /// Initializes a new instance of the BsonDocumentWriter class. /// </summary> /// <param name="topLevelDocument">The document to write to (normally starts out as an empty document).</param> /// <param name="settings">The settings.</param> public BsonDocumentWriter(BsonDocument topLevelDocument, BsonDocumentWriterSettings settings) : base(settings) { this.topLevelDocument = topLevelDocument; this.settings = settings; // already frozen by base class context = null; state = BsonWriterState.Initial; }
// constructors /// <summary> /// Initializes a new instance of the BsonDocumentWriter class. /// </summary> /// <param name="topLevelDocument">The document to write to (normally starts out as an empty document).</param> /// <param name="settings">The settings.</param> public BsonDocumentWriter(BsonDocument topLevelDocument, BsonDocumentWriterSettings settings) : base(settings) { _topLevelDocument = topLevelDocument; _documentWriterSettings = settings; // already frozen by base class _context = null; _state = BsonWriterState.Initial; }
internal BsonDocumentWriterContext( BsonDocumentWriterContext parentContext, ContextType contextType, string code) { _parentContext = parentContext; _contextType = contextType; _code = code; }
internal BsonDocumentWriterContext( BsonDocumentWriterContext parentContext, ContextType contextType, BsonArray array) { _parentContext = parentContext; _contextType = contextType; _array = array; }
// constructors internal BsonDocumentWriterContext( BsonDocumentWriterContext parentContext, ContextType contextType, BsonDocument document) { _parentContext = parentContext; _contextType = contextType; _document = document; }
internal BsonDocumentWriterContext( BsonDocumentWriterContext parentContext, ContextType contextType, string code ) { this.parentContext = parentContext; this.contextType = contextType; this.code = code; }
internal BsonDocumentWriterContext( BsonDocumentWriterContext parentContext, ContextType contextType, BsonDocument document ) { this.parentContext = parentContext; this.contextType = contextType; this.document = document; }
/// <summary> /// Initializes a new instance of the BsonDocumentWriter class. /// </summary> /// <param name="topLevelDocument">The document to write to (normally starts out as an empty document).</param> /// <param name="settings">The settings.</param> public BsonDocumentWriter( BsonDocument topLevelDocument, BsonDocumentWriterSettings settings ) { this.topLevelDocument = topLevelDocument; this.settings = settings.Freeze(); context = null; state = BsonWriterState.Initial; }
internal BsonDocumentWriterContext( BsonDocumentWriterContext parentContext, ContextType contextType, BsonArray array ) { this.parentContext = parentContext; this.contextType = contextType; this.array = array; }
// public methods /// <summary> /// Closes the writer. /// </summary> public override void Close() { // Close can be called on Disposed objects if (state != BsonWriterState.Closed) { context = null; state = BsonWriterState.Closed; } }
// constructors /// <summary> /// Initializes a new instance of the BsonDocumentWriter class. /// </summary> /// <param name="topLevelDocument">The document to write to (normally starts out as an empty document).</param> /// <param name="settings">The settings.</param> public BsonDocumentWriter(BsonDocument topLevelDocument, BsonDocumentWriterSettings settings) : base(settings) { if (topLevelDocument == null) { throw new ArgumentNullException("topLevelDocument"); } _topLevelDocument = topLevelDocument; _context = null; State = BsonWriterState.Initial; }
/// <summary> /// Initializes a new instance of the BsonDocumentWriter class. /// </summary> /// <param name="document">The document to write to (normally starts out as an empty document).</param> /// <param name="settings">The settings.</param> public BsonDocumentWriter(BsonDocument document, BsonDocumentWriterSettings settings) : base(settings) { if (document == null) { throw new ArgumentNullException("document"); } _document = document; _documentWriterSettings = settings; // already frozen by base class _context = null; State = BsonWriterState.Initial; }
/// <summary> /// Writes a BSON JavaScript to the writer (call WriteStartDocument to start writing the scope). /// </summary> /// <param name="code">The JavaScript code.</param> public override void WriteJavaScriptWithScope(string code) { if (disposed) { throw new ObjectDisposedException("BsonDocumentWriter"); } if (state != BsonWriterState.Value) { ThrowInvalidState("WriteJavaScriptWithScope", BsonWriterState.Value); } context = new BsonDocumentWriterContext(context, ContextType.JavaScriptWithScope, code); state = BsonWriterState.ScopeDocument; }
/// <summary> /// Writes the start of a BSON array to the writer. /// </summary> public override void WriteStartArray() { if (disposed) { throw new ObjectDisposedException("BsonDocumentWriter"); } if (state != BsonWriterState.Value) { ThrowInvalidState("WriteStartArray", BsonWriterState.Value); } context = new BsonDocumentWriterContext(context, ContextType.Array, new BsonArray()); state = BsonWriterState.Value; }
/// <summary> /// Writes the start of a BSON array to the writer. /// </summary> public override void WriteStartArray() { if (disposed) { throw new ObjectDisposedException("BsonBinaryWriter"); } if (state != BsonWriterState.Value) { var message = string.Format("WriteStartArray cannot be called when State is: {0}", state); throw new InvalidOperationException(message); } context = new BsonDocumentWriterContext(context, ContextType.Array, new BsonArray()); state = BsonWriterState.Value; }
/// <summary> /// Writes a BSON JavaScript to the writer (call WriteStartDocument to start writing the scope). /// </summary> /// <param name="code">The JavaScript code.</param> public override void WriteJavaScriptWithScope( string code ) { if (disposed) { throw new ObjectDisposedException("BsonBinaryWriter"); } if (state != BsonWriterState.Value) { var message = string.Format("WriteJavaScriptWithScope cannot be called when State is: {0}", state); throw new InvalidOperationException(message); } context = new BsonDocumentWriterContext(context, ContextType.JavaScriptWithScope, code); state = BsonWriterState.ScopeDocument; }
/// <summary> /// Writes the end of a BSON array to the writer. /// </summary> public override void WriteEndArray() { if (disposed) { throw new ObjectDisposedException("BsonBinaryWriter"); } if (state != BsonWriterState.Value || context.ContextType != ContextType.Array) { var message = string.Format("WriteEndArray cannot be called when State is: {0}", state); throw new InvalidOperationException(message); } var array = context.Array; context = context.ParentContext; WriteValue(array); state = GetNextState(); }
/// <summary> /// Writes the end of a BSON document to the writer. /// </summary> public override void WriteEndDocument() { if (Disposed) { throw new ObjectDisposedException("BsonDocumentWriter"); } if (State != BsonWriterState.Name) { ThrowInvalidState("WriteEndDocument", BsonWriterState.Name); } if (_context.ContextType != ContextType.Document && _context.ContextType != ContextType.ScopeDocument) { ThrowInvalidContextType("WriteEndDocument", _context.ContextType, ContextType.Document, ContextType.ScopeDocument); } base.WriteEndDocument(); if (_context.ContextType == ContextType.ScopeDocument) { var scope = _context.Document; _context = _context.ParentContext; var code = _context.Code; _context = _context.ParentContext; WriteValue(new BsonJavaScriptWithScope(code, scope)); } else { var document = _context.Document; _context = _context.ParentContext; if (_context != null) { WriteValue(document); } } if (_context == null) { State = BsonWriterState.Done; } else { State = GetNextState(); } }
/// <summary> /// Writes the end of a BSON array to the writer. /// </summary> public override void WriteEndArray() { if (disposed) { throw new ObjectDisposedException("BsonDocumentWriter"); } if (state != BsonWriterState.Value) { ThrowInvalidState("WriteEndArray", BsonWriterState.Value); } if (context.ContextType != ContextType.Array) { ThrowInvalidContextType("WriteEndArray", context.ContextType, ContextType.Array); } var array = context.Array; context = context.ParentContext; WriteValue(array); state = GetNextState(); }
/// <summary> /// Writes the end of a BSON document to the writer. /// </summary> public override void WriteEndDocument() { if (disposed) { throw new ObjectDisposedException("BsonBinaryWriter"); } if (state != BsonWriterState.Name || (context.ContextType != ContextType.Document && context.ContextType != ContextType.ScopeDocument)) { var message = string.Format("WriteEndDocument cannot be called when State is: {0}", state); throw new InvalidOperationException(message); } if (context.ContextType == ContextType.ScopeDocument) { var scope = context.Document; context = context.ParentContext; var code = context.Code; context = context.ParentContext; WriteValue(new BsonJavaScriptWithScope(code, scope)); } else { var document = context.Document; context = context.ParentContext; if (context != null) { WriteValue(document); } } if (context == null) { state = BsonWriterState.Done; } else { state = GetNextState(); } }
public override void WriteEndArray() { if (disposed) { throw new ObjectDisposedException("BsonBinaryWriter"); } if (state != BsonWriterState.Value || context.ContextType != ContextType.Array) { var message = string.Format("WriteEndArray cannot be called when State is: {0}", state); throw new InvalidOperationException(message); } var array = context.Array; context = context.ParentContext; WriteValue(array); state = GetNextState(); }
/// <summary> /// Writes the start of a BSON array to the writer. /// </summary> public override void WriteStartArray() { if (Disposed) { throw new ObjectDisposedException("BsonDocumentWriter"); } if (State != BsonWriterState.Value) { ThrowInvalidState("WriteStartArray", BsonWriterState.Value); } base.WriteStartArray(); _context = new BsonDocumentWriterContext(_context, ContextType.Array, new BsonArray()); State = BsonWriterState.Value; }
public override void WriteStartDocument() { if (disposed) { throw new ObjectDisposedException("BsonBinaryWriter"); } if (state != BsonWriterState.Initial && state != BsonWriterState.Value && state != BsonWriterState.ScopeDocument && state != BsonWriterState.Done) { var message = string.Format("WriteStartDocument cannot be called when State is: {0}", state); throw new InvalidOperationException(message); } switch (state) { case BsonWriterState.Initial: case BsonWriterState.Done: context = new BsonDocumentWriterContext(null, ContextType.Document, topLevelDocument); break; case BsonWriterState.Value: context = new BsonDocumentWriterContext(context, ContextType.Document, new BsonDocument()); break; case BsonWriterState.ScopeDocument: context = new BsonDocumentWriterContext(context, ContextType.ScopeDocument, new BsonDocument()); break; default: throw new BsonInternalException("Unexpected state"); } state = BsonWriterState.Name; }
/// <summary> /// Writes the end of a BSON array to the writer. /// </summary> public override void WriteEndArray() { if (Disposed) { throw new ObjectDisposedException("BsonDocumentWriter"); } if (State != BsonWriterState.Value) { ThrowInvalidState("WriteEndArray", BsonWriterState.Value); } if (_context.ContextType != ContextType.Array) { ThrowInvalidContextType("WriteEndArray", _context.ContextType, ContextType.Array); } base.WriteEndArray(); var array = _context.Array; _context = _context.ParentContext; WriteValue(array); State = GetNextState(); }
public override void WriteEndDocument() { if (disposed) { throw new ObjectDisposedException("BsonBinaryWriter"); } if (state != BsonWriterState.Name || (context.ContextType != ContextType.Document && context.ContextType != ContextType.ScopeDocument)) { var message = string.Format("WriteEndDocument cannot be called when State is: {0}", state); throw new InvalidOperationException(message); } if (context.ContextType == ContextType.ScopeDocument) { var scope = context.Document; context = context.ParentContext; var code = context.Code; context = context.ParentContext; WriteValue(new BsonJavaScriptWithScope(code, scope)); } else { var document = context.Document; context = context.ParentContext; if (context != null) { WriteValue(document); } } if (context == null) { state = BsonWriterState.Done; } else { state = GetNextState(); } }
/// <summary> /// Writes a BSON JavaScript to the writer (call WriteStartDocument to start writing the scope). /// </summary> /// <param name="code">The JavaScript code.</param> public override void WriteJavaScriptWithScope(string code) { if (Disposed) { throw new ObjectDisposedException("BsonDocumentWriter"); } if (State != BsonWriterState.Value) { ThrowInvalidState("WriteJavaScriptWithScope", BsonWriterState.Value); } _context = new BsonDocumentWriterContext(_context, ContextType.JavaScriptWithScope, code); State = BsonWriterState.ScopeDocument; }
public override void WriteJavaScriptWithScope( string code ) { if (disposed) { throw new ObjectDisposedException("BsonBinaryWriter"); } if (state != BsonWriterState.Value) { var message = string.Format("WriteJavaScriptWithScope cannot be called when State is: {0}", state); throw new InvalidOperationException(message); } context = new BsonDocumentWriterContext(context, ContextType.JavaScriptWithScope, code); state = BsonWriterState.ScopeDocument; }
/// <summary> /// Writes the start of a BSON document to the writer. /// </summary> public override void WriteStartDocument() { if (Disposed) { throw new ObjectDisposedException("BsonDocumentWriter"); } if (State != BsonWriterState.Initial && State != BsonWriterState.Value && State != BsonWriterState.ScopeDocument && State != BsonWriterState.Done) { ThrowInvalidState("WriteStartDocument", BsonWriterState.Initial, BsonWriterState.Value, BsonWriterState.ScopeDocument, BsonWriterState.Done); } base.WriteStartDocument(); switch (State) { case BsonWriterState.Initial: case BsonWriterState.Done: _context = new BsonDocumentWriterContext(null, ContextType.Document, _topLevelDocument); break; case BsonWriterState.Value: _context = new BsonDocumentWriterContext(_context, ContextType.Document, new BsonDocument()); break; case BsonWriterState.ScopeDocument: _context = new BsonDocumentWriterContext(_context, ContextType.ScopeDocument, new BsonDocument()); break; default: throw new BsonInternalException("Unexpected state."); } State = BsonWriterState.Name; }
public override void WriteStartArray() { if (disposed) { throw new ObjectDisposedException("BsonBinaryWriter"); } if (state != BsonWriterState.Value) { var message = string.Format("WriteStartArray cannot be called when State is: {0}", state); throw new InvalidOperationException(message); } context = new BsonDocumentWriterContext(context, ContextType.Array, new BsonArray()); state = BsonWriterState.Value; }