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);
        }
Exemplo n.º 3
0
        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.");
            }
        }
Exemplo n.º 5
0
        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.");
            }
        }
Exemplo n.º 6
0
        public override void Write(IPackStreamWriter writer, object value)
        {
            var msg = value.CastOrThrow <HelloMessage>();

            writer.WriteStructHeader(1, MsgHello);
            writer.Write(msg.MetaData);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 9
0
        public override void Serialize(IPackStreamWriter writer, object value)
        {
            var discardN = value.CastOrThrow <DiscardMessage>();

            writer.WriteStructHeader(1, BoltProtocolV4MessageFormat.MsgDiscardN);
            writer.Write(discardN.Metadata);
        }
Exemplo n.º 10
0
        public void Write(IPackStreamWriter writer, object value)
        {
            var time = value.CastOrThrow <LocalTime>();

            writer.WriteStructHeader(StructSize, StructType);
            writer.Write(time.ToNanoOfDay());
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
        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);
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 24
0
                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);
                    }
                }
Exemplo n.º 25
0
 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 }
     });
 }
Exemplo n.º 30
0
        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)}!");
            }
        }