/// <summary> /// Reads a BSON regular expression from the reader. /// </summary> /// <returns>A BsonRegularExpression.</returns> public override BsonRegularExpression ReadRegularExpression() { if (Disposed) { ThrowObjectDisposedException(); } VerifyBsonType("ReadRegularExpression", BsonType.RegularExpression); State = GetNextState(); var pattern = _streamReader.ReadCString(); var options = _streamReader.ReadCString(); return(new BsonRegularExpression(pattern, options)); }
/// <summary> /// Reads the name of an element from the reader. /// </summary> /// <returns>The name of the element.</returns> public override string ReadName() { if (Disposed) { ThrowObjectDisposedException(); } if (State == BsonReaderState.Type) { ReadBsonType(); } if (State != BsonReaderState.Name) { ThrowInvalidState("ReadName", BsonReaderState.Name); } CurrentName = _streamReader.ReadCString(); State = BsonReaderState.Value; return(CurrentName); }
// public methods /// <summary> /// Reads the name. /// </summary> /// <param name="streamReader">The stream reader.</param> /// <returns> /// The name. /// </returns> public string Decode(BsonStreamReader streamReader) { BsonTrieNode <TValue> node; if (_trie.TryGetNode(streamReader, out node)) { if (node.HasValue) { _found = true; _value = node.Value; return(node.ElementName); } } return(streamReader.ReadCString()); }