public override void Serialize(IPackStreamWriter writer, object value) { var msg = value.CastOrThrow <BeginMessage>(); writer.WriteStructHeader(1, MsgBegin); writer.Write(msg.Metadata); }
public override void Serialize(IPackStreamWriter writer, object value) { var msg = value.CastOrThrow <HelloMessage>(); writer.WriteStructHeader(1, BoltProtocolV4_2MessageFormat.MsgHello); writer.Write(msg.MetaData); }
public void Write(IPackStreamWriter writer, object value) { var time = value.CastOrThrow <CypherTime>(); writer.WriteStructHeader(StructSize, StructType); writer.Write(time.NanosecondsOfDay); }
public void Serialize(IPackStreamWriter writer, object value) { var dateTime = value.CastOrThrow <ZonedDateTime>(); switch (dateTime.Zone) { case ZoneId zone: writer.WriteStructHeader(StructSize, StructTypeWithId); writer.Write(dateTime.ToEpochSeconds()); writer.Write(dateTime.Nanosecond); writer.Write(zone.Id); break; case ZoneOffset zone: writer.WriteStructHeader(StructSize, StructTypeWithOffset); writer.Write(dateTime.ToEpochSeconds()); writer.Write(dateTime.Nanosecond); writer.Write(zone.OffsetSeconds); break; default: throw new ProtocolException( $"{GetType().Name}: Zone('{dateTime.Zone.GetType().Name}') is not supported."); } }
public void Write(IPackStreamWriter writer, object value) { var point = value.CastOrThrow <CypherPoint>(); switch (point.Dimension) { case CypherPoint.TwoD: { writer.WriteStructHeader(Point2DStructSize, Point2DStructType); writer.Write(point.SrId); writer.Write(point.X); writer.Write(point.Y); break; } case CypherPoint.ThreeD: { writer.WriteStructHeader(Point3DStructSize, Point3DStructType); writer.Write(point.SrId); writer.Write(point.X); writer.Write(point.Y); writer.Write(point.Z); break; } default: throw new ProtocolException( $"{GetType().Name}: Dimension('{point.Dimension}') is not supported."); } }
public override void Write(IPackStreamWriter writer, object value) { var msg = value.CastOrThrow <HelloMessage>(); writer.WriteStructHeader(1, MsgHello); writer.Write(msg.MetaData); }
public void Write(IPackStreamWriter writer, object value) { var date = value.CastOrThrow <LocalDate>(); writer.WriteStructHeader(StructSize, StructType); writer.Write(date.ToEpochDays()); }
public override void Serialize(IPackStreamWriter writer, object value) { var pullN = value.CastOrThrow <PullMessage>(); writer.WriteStructHeader(1, BoltProtocolV4_0MessageFormat.MsgPullN); writer.Write(pullN.Metadata); }
public override void Serialize(IPackStreamWriter writer, object value) { var discardN = value.CastOrThrow <DiscardMessage>(); writer.WriteStructHeader(1, BoltProtocolV4MessageFormat.MsgDiscardN); writer.Write(discardN.Metadata); }
public void Write(IPackStreamWriter writer, object value) { var time = value.CastOrThrow <LocalTime>(); writer.WriteStructHeader(StructSize, StructType); writer.Write(time.ToNanoOfDay()); }
public override void Write(IPackStreamWriter writer, object value) { var msg = value.CastOrThrow <RunMessage>(); writer.WriteStructHeader(2, PackStream.MsgRun); writer.Write(msg.Statement); writer.Write(msg.StatementParameters ?? PackStream.EmptyDictionary); }
public override void Serialize(IPackStreamWriter writer, object value) { var msg = value.CastOrThrow <RouteMessage>(); writer.WriteStructHeader(2, BoltProtocolV4_3MessageFormat.MsgRoute); writer.Write(msg.Routing); writer.Write(msg.DatabaseParam); }
public override void Write(IPackStreamWriter writer, object value) { var msg = value.CastOrThrow <InitMessage>(); writer.WriteStructHeader(2, MsgInit); writer.Write(msg.ClientNameAndVersion); writer.Write(msg.AuthToken ?? PackStream.EmptyDictionary); }
public void Write(IPackStreamWriter writer, object value) { var dateTime = value.CastOrThrow <CypherDateTime>(); writer.WriteStructHeader(StructSize, StructType); writer.Write(dateTime.EpochSeconds); writer.Write(dateTime.NanosOfSecond); }
public void Serialize(IPackStreamWriter writer, object value) { var dateTime = value.CastOrThrow <LocalDateTime>(); writer.WriteStructHeader(StructSize, StructType); writer.Write(dateTime.ToEpochSeconds()); writer.Write(dateTime.Nanosecond); }
public void Serialize(IPackStreamWriter writer, object value) { var time = value.CastOrThrow <OffsetTime>(); writer.WriteStructHeader(StructSize, StructType); writer.Write(time.ToNanoOfDay()); writer.Write(time.OffsetSeconds); }
public override void Serialize(IPackStreamWriter writer, object value) { var msg = value.CastOrThrow <RunWithMetadataMessage>(); writer.WriteStructHeader(3, MsgRun); writer.Write(msg.Statement.Text); writer.Write(msg.Statement.Parameters); writer.Write(msg.Metadata); }
public BoltWriter(Stream stream, int defaultBufferSize, int maxBufferSize, ILogger logger, IPackStreamFactory packStreamFactory) { Throw.ArgumentNullException.IfNull(stream, nameof(stream)); Throw.ArgumentOutOfRangeException.IfFalse(stream.CanWrite, nameof(stream)); Throw.ArgumentNullException.IfNull(packStreamFactory, nameof(packStreamFactory)); _chunkWriter = new ChunkWriter(stream, defaultBufferSize, maxBufferSize, logger); _packStreamWriter = packStreamFactory.CreateWriter(_chunkWriter.ChunkerStream); }
public MessageWriter(Stream stream, int defaultBufferSize, int maxBufferSize, IDriverLogger logger, IMessageFormat messageFormat) { Throw.ArgumentNullException.IfNull(stream, nameof(stream)); Throw.ArgumentOutOfRangeException.IfFalse(stream.CanWrite, nameof(stream)); Throw.ArgumentNullException.IfNull(messageFormat, nameof(messageFormat)); _chunkWriter = new ChunkWriter(stream, defaultBufferSize, maxBufferSize, logger); _packStreamWriter = messageFormat.CreateWriter(_chunkWriter.ChunkerStream); }
public override void Serialize(IPackStreamWriter writer, object value) { var msg = value.CastOrThrow <RouteMessage>(); writer.WriteStructHeader(3, BoltProtocolV4_3MessageFormat.MsgRoute); writer.Write(msg.Routing); writer.Write(msg.Bookmark.Values); writer.Write(string.IsNullOrEmpty(msg.DatabaseParam) ? null : msg.DatabaseParam); }
public override void Serialize(IPackStreamWriter writer, object value) { var msg = value.CastOrThrow <RouteMessage>(); writer.WriteStructHeader(3, BoltProtocolV4_4MessageFormat.MsgRoute); writer.Write(msg.Routing); writer.Write(msg.Bookmark.Values); writer.Write(msg.DatabaseContext); }
private static void SerializeUnboundedRelationship(IPackStreamWriter writer, int id) { writer.WriteStructHeader(3, UnboundRelationshipSerializer.UnboundRelationship); writer.Write(id); writer.Write($"RELATES_TO_{id}"); writer.Write(new Dictionary <string, object> { { "rProp1", $"something{id}" } }); }
public void Serialize(IPackStreamWriter writer, object value) { var duration = value.CastOrThrow <Duration>(); writer.WriteStructHeader(StructSize, StructType); writer.Write(duration.Months); writer.Write(duration.Days); writer.Write(duration.Seconds); writer.Write(duration.Nanos); }
public void Write(IPackStreamWriter writer, object value) { var structValue = (StructType)value; writer.WriteStructHeader(structValue.Values.Count, (byte)'S'); foreach (var innerValue in structValue.Values) { writer.Write(innerValue); } }
private static void WriteUnboundRelationship(IPackStreamWriter writer) { writer.WriteStructHeader(3, UnboundRelationshipHandler.UnboundRelationship); writer.Write(1); writer.Write("RELATES_TO"); writer.Write(new Dictionary <string, object> { { "prop1", "something" }, { "prop2", 2.0 }, { "prop3", false } }); }
public override void Serialize(IPackStreamWriter writer, object value) { var time = value.CastOrThrow <TimeSpan>(); if (time.Ticks < 0 || time.Ticks >= TimeSpan.TicksPerDay) { throw new ProtocolException( $"TimeSpan instance ({time}) passed to {nameof(SystemDateTimeSerializer)} is not a valid time of day!"); } writer.Write(new LocalTime(time)); }
private static void SerializeNode(IPackStreamWriter writer, int id) { writer.WriteStructHeader(3, NodeSerializer.Node); writer.Write(id); writer.Write(new List <string> { $"Label{id}" }); writer.Write(new Dictionary <string, object> { { "nProp1", $"something{id}" } }); }
private static void SerializeRelationship(IPackStreamWriter writer) { writer.WriteStructHeader(5, RelationshipSerializer.Relationship); writer.Write(1); writer.Write(2); writer.Write(3); writer.Write("RELATES_TO"); writer.Write(new Dictionary <string, object> { { "prop1", "something" }, { "prop2", 2.0 }, { "prop3", false } }); }
private static void SerializeNode(IPackStreamWriter writer) { writer.WriteStructHeader(3, NodeSerializer.Node); writer.Write(1); writer.Write(new List <string> { "Label1", "Label2" }); writer.Write(new Dictionary <string, object> { { "prop1", "something" }, { "prop2", 15 }, { "prop3", true } }); }
public override void Serialize(IPackStreamWriter writer, object value) { var dateTime = value.CastOrThrow <DateTime>(); switch (dateTime.Kind) { case DateTimeKind.Local: case DateTimeKind.Unspecified: writer.Write(new LocalDateTime(dateTime)); break; case DateTimeKind.Utc: writer.Write(new ZonedDateTime(dateTime, 0)); break; default: throw new ProtocolException( $"Unsupported DateTimeKind {dateTime.Kind} passed to {nameof(SystemDateTimeSerializer)}!"); } }