public void Leave(object level, VisitArgs args) { if (args.Type == LevelType.Root) return; if (level != null) { var reservation = _reservations.Pop(); _writer.Write(reservation); BinaryZPacker.Pack(_stream, 0); } }
public void VisitValue(byte? value, VisitArgs args) { if (args.Metadata.Index > 0) BinaryZPacker.Pack(_stream, args.Metadata.Index); if (value == null) { _stream.WriteByte(BinaryZPacker.Null); return; } _stream.WriteByte((Byte)BinaryInformation.Byte.FixedLength); _stream.WriteByte(value.Value); }
public bool TryVisitValue(VisitArgs args, out short? value) { if (args.Metadata.Index > 0 && !MoveToIndex(args.Metadata.Index)) { value = null; return false; } var length = _reader.ReadByte(); if (length == BinaryZPacker.Null) { value = null; return true; } value = (Int16)BinaryPV64Packer.UnpackS(_stream, length); return true; }
public void Leave(VisitArgs args) { if (_endOfLevel) { _endOfLevel = false; return; } if (args.Type == LevelType.Root) return; if (args.Type.IsCollection()) return; if (args.Type.IsDictionary()) return; MoveToIndex(UInt32.MaxValue); _endOfLevel = false; }
public void VisitValue(short? value, VisitArgs args) { if (args.Metadata.Index > 0) BinaryZPacker.Pack(_stream, args.Metadata.Index); if (value == null) { _stream.WriteByte(BinaryZPacker.Null); return; } var length = BinaryPV64Packer.GetSLength(value.Value); _stream.WriteByte(length); BinaryPV64Packer.PackS(_stream, value.Value, length); }
public void Visit(object level, VisitArgs args) { if (args.Type == LevelType.Root) return; if (args.Metadata.Index > 0) BinaryZPacker.Pack(_stream, args.Metadata.Index); if (level == null) { _stream.WriteByte(BinaryZPacker.Null); return; } _stream.WriteByte(BinaryZPacker.VariabelLength); _reservations.Push(_writer.Reserve()); }
public ValueState TryVisit(VisitArgs args) { if (args.Type == LevelType.Root) return ValueState.Found; if (args.Metadata.Index > 0 && !MoveToIndex(args.Metadata.Index)) return ValueState.NotFound; var byteLength = _reader.ReadByte(); if (byteLength == BinaryZPacker.Null) return ValueState.Null; if (byteLength != BinaryZPacker.VariabelLength) throw new UnexpectedLengthException(args, byteLength); _reader.Skip(4); return ValueState.Found; }
public bool TryVisitValue(VisitArgs args, out byte? value) { if (args.Metadata.Index > 0 && !MoveToIndex(args.Metadata.Index)) { value = null; return false; } var length = _reader.ReadByte(); if (length == BinaryZPacker.Null) { value = null; return true; } if (length != BinaryInformation.Byte.FixedLength) throw new UnexpectedLengthException(args, length); value = (Byte)_stream.ReadByte(); return true; }
public IdentifierHardCodedTraveller(IVisitArgsFactory factory) { _argsId0 = factory.Construct("Id"); _argsType1 = factory.Construct("Type"); }
public void VisitValue(Guid? value, VisitArgs args) { if (args.Metadata.Index > 0) BinaryZPacker.Pack(_stream, args.Metadata.Index); if (value == null) { _stream.WriteByte(BinaryZPacker.Null); return; } _stream.WriteByte((Byte)BinaryInformation.Guid.FixedLength); var bytes = BinaryInformation.Guid.Converter.Convert(value.Value); _stream.Write(bytes, 0, bytes.Length); }
public void VisitValue(DateTime? value, VisitArgs args) { if (args.Metadata.Index > 0) BinaryZPacker.Pack(_stream, args.Metadata.Index); if (value == null) { _stream.WriteByte(BinaryZPacker.Null); return; } if (value.Value.Kind != DateTimeKind.Utc) value = value.Value.ToUniversalTime(); var length = BinaryPV64Packer.GetSLength(value.Value.Ticks); _stream.WriteByte(length); BinaryPV64Packer.PackS(_stream, value.Value.Ticks, length); }
public bool TryVisitValue(VisitArgs args, out TimeSpan?value) { return(TryVisitString(args, s => TimeSpan.Parse(s), out value)); }
public bool TryVisitValue(VisitArgs args, out double?value) { return(TryVisitNumber(args, v => (double?)v, out value)); }
public bool TryVisitValue(VisitArgs args, out ulong?value) { return(TryVisitNumber(args, v => (ulong?)v, out value)); }
public void Leave(object level, VisitArgs args) { Statistics.LeaveCount++; }
public void Visit(object level, VisitArgs args) { Statistics.VisitCount++; _statistics.AckVisited(args); }
public void VisitValue(Guid?value, VisitArgs args) { Statistics.VisitGuidCount++; _statistics.AckVisited(args); }
public void VisitValue(string value, VisitArgs args) { Statistics.VisitStringCount++; _statistics.AckVisited(args); }
public void VisitValue(DateTime?value, VisitArgs args) { Statistics.VisitDateTimeCount++; _statistics.AckVisited(args); }
public bool TryVisitValue(VisitArgs args, out byte[] value) { if (args.Metadata.Index > 0 && !MoveToIndex(args.Metadata.Index)) { value = null; return false; } var length = _reader.ReadByte(); if (length == BinaryZPacker.Null) { value = null; return true; } var lengthToRead = length == BinaryZPacker.VariabelLength ? _reader.ReadV() : length; value = _reader.ReadBlob(lengthToRead); return true; }
public void VisitValue(decimal?value, VisitArgs args) { Statistics.VisitDecimalCount++; _statistics.AckVisited(args); }
public void VisitValue(TimeSpan?value, VisitArgs args) { Statistics.VisitTimeSpanCount++; _statistics.AckVisited(args); }
public void VisitValue(byte?value, VisitArgs args) { Statistics.VisitByteCount++; _statistics.AckVisited(args); }
public bool TryVisitValue(VisitArgs args, out float?value) { return(TryVisitNumber(args, v => (float?)v, out value)); }
public void VisitValue(short?value, VisitArgs args) { Statistics.VisitInt16Count++; _statistics.AckVisited(args); }
public bool TryVisitValue(VisitArgs args, out decimal?value) { return(TryVisitNumber(args, v => (decimal?)v, out value)); }
public void VisitValue(uint?value, VisitArgs args) { Statistics.VisitUInt32Count++; _statistics.AckVisited(args); }
public bool TryVisitValue(VisitArgs args, out DateTime?value) { return(TryVisitString(args, s => DateTime.Parse(s, JsonEncoding.DateTimeFormat, DateTimeStyles.RoundtripKind), out value)); }
public bool TryVisitValue(VisitArgs args, out DateTime? value) { if (args.Metadata.Index > 0 && !MoveToIndex(args.Metadata.Index)) { value = null; return false; } var length = _reader.ReadByte(); if (length == BinaryZPacker.Null) { value = null; return true; } value = new DateTime(BinaryPV64Packer.UnpackS(_stream, length), DateTimeKind.Utc).ToLocalTime(); return true; }
public void VisitValue(string value, VisitArgs args) { if (args.Metadata.Index > 0) BinaryZPacker.Pack(_stream, args.Metadata.Index); if (value == null) { _stream.WriteByte(BinaryZPacker.Null); return; } if (value.Length < BinaryZPacker.VariabelLength) _stream.WriteByte((Byte)value.Length); else { _stream.WriteByte(BinaryZPacker.VariabelLength); BinaryV32Packer.PackU(_stream, (uint)value.Length); } var bytes = BinaryInformation.String.Converter.Convert(value); _stream.Write(bytes, 0, bytes.Length); }
public ComplexGraphProperty(SerializableProperty property, IGraphType propertyType) { _property = property; _propertyType = propertyType; _args = property.CreateVisitArgs(); }
public void VisitValue(byte[] value, VisitArgs args) { if (args.Metadata.Index > 0) BinaryZPacker.Pack(_stream, args.Metadata.Index); if (value == null) { _stream.WriteByte(BinaryZPacker.Null); return; } if (value.Length < BinaryZPacker.VariabelLength) _stream.WriteByte((Byte) value.Length); else { _stream.WriteByte(BinaryZPacker.VariabelLength); BinaryV32Packer.PackU(_stream, (uint)value.Length); } _stream.Write(value, 0, value.Length); }
public ComplexGraphProperty(SerializableProperty property, IGraphType propertyType, VisitArgs args) { _property = property; _propertyType = propertyType; _args = args; }
public void VisitValue(ulong?value, VisitArgs args) { Statistics.VisitUInt64Count++; _statistics.AckVisited(args); }
public void VisitValue(double?value, VisitArgs args) { Statistics.VisitDoubleCount++; _statistics.AckVisited(args); }
public void VisitValue(bool?value, VisitArgs args) { Statistics.VisitBooleanCount++; _statistics.AckVisited(args); }
public void VisitValue(float?value, VisitArgs args) { Statistics.VisitSingleCount++; _statistics.AckVisited(args); }
public Int16GraphProperty(SerializableProperty property) { _property = property; _args = property.CreateVisitArgs(); }
public void AckVisited(VisitArgs args) { _visitedArgs.Add(args); }