protected override void ReadValueFromStream(Stream stream) { var increment = BinUtils.ReadUInt32(stream); var epoch = ((long)BinUtils.ReadInt32(stream)).FromSecondsSinceUnixEpochStart(); Value = new BSONTimestamp(epoch, increment); }
/// <summary> /// Deserializes BSON document from stream containing BSON-encoded data /// </summary> public BSONDocument(Stream stream) { if (stream == null) { throw new BSONException(StringConsts.ARGUMENT_ERROR + "BSONDocument.ctor(stream==null)"); } long start = stream.Position; var totalSize = BinUtils.ReadInt32(stream); long read = 4; while (read < totalSize - 1) { var et = BinUtils.ReadElementType(stream); var factory = BSONElement.GetElementFactory(et); var element = factory(stream);//element made Set(element); read = stream.Position - start; } var terminator = BinUtils.ReadByte(stream); if (terminator != BinUtils.TERMINATOR || stream.Position - start != totalSize) { throw new BSONException(StringConsts.BSON_EOD_ERROR); } }
protected override void ReadValueFromStream(Stream stream) { var elements = new List <BSONElement>(); long start = stream.Position; var totalSize = BinUtils.ReadInt32(stream); long read = 4; while (read < totalSize - 1) { var et = BinUtils.ReadElementType(stream); var factory = BSONElement.GetElementFactory(et); var element = factory(stream);//element made element.MarkAsArrayItem(); elements.Add(element); read = stream.Position - start; } Value = elements.ToArray(); var terminator = BinUtils.ReadByte(stream); if (terminator != BinUtils.TERMINATOR || stream.Position - start != totalSize) { throw new BSONException(StringConsts.BSON_EOD_ERROR); } }
protected override void ReadValueFromStream(Stream stream) { BinUtils.ReadInt32(stream); // fullLength var length = BinUtils.ReadInt32(stream); var code = BinUtils.ReadCString(stream, length); var document = new BSONDocument(stream); Value = new BSONCodeWithScope(code, document); }
protected override void ReadValueFromStream(Stream stream) { var length = BinUtils.ReadInt32(stream); var type = BinUtils.ReadByte(stream); var buffer = new byte[length]; stream.Read(buffer, 0, length); Value = new BSONBinary((BSONBinaryType)type, buffer); }
protected override void ReadValueFromStream(Stream stream) { var length = BinUtils.ReadInt32(stream); Value = BinUtils.ReadCString(stream, length); }
protected override void ReadValueFromStream(Stream stream) { Value = BinUtils.ReadInt32(stream); }