private static HandshakeRequestMessage CreateHandshakeRequestMessage(ref MessagePackReader reader, int arrayLength)
        {
            var version = ReadInt32(ref reader, "version");
            var result  = new HandshakeRequestMessage(version);

            if (arrayLength >= 4)
            {
                result.ConnectionType = ReadInt32(ref reader, "connectionType");
                result.Target         = ReadString(ref reader, "target");
            }
            result.MigrationLevel = arrayLength >= 5 ? ReadInt32(ref reader, "migratableStatus") : 0;
            return(result);
        }
 private static void WriteHandshakeRequestMessage(ref MessagePackWriter writer, HandshakeRequestMessage message)
 {
     writer.WriteArrayHeader(5);
     writer.Write(ServiceProtocolConstants.HandshakeRequestType);
     writer.Write(message.Version);
     writer.Write(message.ConnectionType);
     writer.Write(message.ConnectionType == 0 ? "" : message.Target ?? string.Empty);
     writer.Write((int)message.MigrationLevel);
 }