public override StreamElement Deserialize(StreamElement reuse, IDataInputView source)
        {
            int tag = source.ReadByte();

            if (tag == TagRecWithTimestamp)
            {
                var timestamp   = source.ReadLong();
                var value       = ContainedTypeSerializer.Deserialize(source);
                var reuseRecord = reuse.AsRecord <T>();
                reuseRecord.Replace(value, timestamp);
                return(reuseRecord);
            }
            else if (tag == TagRecWithoutTimestamp)
            {
                var value       = ContainedTypeSerializer.Deserialize(source);
                var reuseRecord = reuse.AsRecord <T>();
                reuseRecord.Replace(value);
                return(reuseRecord);
            }
            else if (tag == TagWatermark)
            {
                return(new Watermark(source.ReadLong()));
            }
            else if (tag == TagLatencyMarker)
            {
                return(new LatencyMarker(source.ReadLong(), new OperatorId(source.ReadLong(), source.ReadLong()), source.ReadInt()));
            }
            else
            {
                throw new IOException("Corrupt stream, found tag: " + tag);
            }
        }
        public override StreamElement Deserialize(IDataInputView source)
        {
            int tag = source.ReadByte();

            if (tag == TagRecWithTimestamp)
            {
                var timestamp = source.ReadLong();
                return(new StreamRecord <T>(ContainedTypeSerializer.Deserialize(source), timestamp));
            }
            else if (tag == TagRecWithoutTimestamp)
            {
                return(new StreamRecord <T>(ContainedTypeSerializer.Deserialize(source)));
            }
            else if (tag == TagWatermark)
            {
                return(new Watermark(source.ReadLong()));
            }
            else if (tag == TagStreamStatus)
            {
                return(new StreamStatus(source.ReadInt()));
            }
            else if (tag == TagLatencyMarker)
            {
                return(new LatencyMarker(source.ReadLong(), new OperatorId(source.ReadLong(), source.ReadLong()), source.ReadInt()));
            }
            else
            {
                throw new IOException("Corrupt stream, found tag: " + tag);
            }
        }
示例#3
0
        public void Copy(IDataInputView source, IDataOutputView target)
        {
            var len = source.ReadUnsignedByte();

            target.WriteByte(len);

            if (len >= HighBit)
            {
                var shift = 7;
                int curr;
                len = len & 0x7f;
                while ((curr = source.ReadUnsignedByte()) >= HighBit)
                {
                    len   |= (curr & 0x7f) << shift;
                    shift += 7;
                    target.WriteByte(curr);
                }
                len |= curr << shift;
                target.WriteByte(curr);
            }

            for (var i = 0; i < len; i++)
            {
                var c = source.ReadUnsignedByte();
                target.WriteByte(c);
                while (c >= HighBit)
                {
                    c = source.ReadUnsignedByte();
                    target.WriteByte(c);
                }
            }
        }
示例#4
0
        public override int CompareSerialized(IDataInputView firstSource, IDataInputView secondSource)
        {
            var c1   = firstSource.ReadChar();
            var c2   = secondSource.ReadChar();
            var comp = (c1 < c2 ? -1 : (c1 == c2 ? 0 : 1));

            return(AscendingComparison ? comp : -comp);
        }
        public override int CompareSerialized(IDataInputView firstSource, IDataInputView secondSource)
        {
            var fs   = firstSource.ReadBool() ? 1 : 0;
            var ss   = secondSource.ReadBool() ? 1 : 0;
            var comp = fs - ss;

            return(AscendingComparison ? comp : -comp);
        }
        public override int CompareSerialized(IDataInputView firstSource, IDataInputView secondSource)
        {
            var b1   = firstSource.ReadByte();
            var b2   = secondSource.ReadByte();
            var comp = (b1 < b2 ? -1 : (b1 == b2 ? 0 : 1));

            return(AscendingComparison ? comp : -comp);
        }
示例#7
0
        public override byte[] Deserialize(IDataInputView source)
        {
            var len    = source.ReadInt();
            var result = new byte[len];

            source.ReadFully(result);
            return(result);
        }
        public static int CompareSerializedDate(IDataInputView firstSource, IDataInputView secondSource, bool ascendingComparison)
        {
            var l1   = firstSource.ReadLong();
            var l2   = secondSource.ReadLong();
            var comp = (l1 < l2 ? -1 : (l1 == l2 ? 0 : 1));

            return(ascendingComparison ? comp : -comp);
        }
        public override int CompareSerialized(IDataInputView firstSource, IDataInputView secondSource)
        {
            var s1   = firstSource.ReadShort();
            var s2   = secondSource.ReadShort();
            var comp = (s1 < s2 ? -1 : (s1 == s2 ? 0 : 1));

            return(AscendingComparison ? comp : -comp);
        }
        public override int CompareSerialized(IDataInputView firstSource, IDataInputView secondSource)
        {
            var l1   = firstSource.ReadLong();
            var l2   = secondSource.ReadLong();
            var comp = (l1 < l2 ? -1 : (l1 == l2 ? 0 : 1));

            return(AscendingComparison ? comp : -comp);
        }
        public override int CompareSerialized(IDataInputView firstSource, IDataInputView secondSource)
        {
            var i1   = firstSource.ReadInt();
            var i2   = secondSource.ReadInt();
            var comp = (i1 < i2 ? -1 : (i1 == i2 ? 0 : 1));

            return(AscendingComparison ? comp : -comp);
        }
        public override short[] Deserialize(IDataInputView source)
        {
            var len    = source.ReadShort();
            var result = new short[len];

            for (var i = 0; i < len; i++)
            {
                result[i] = source.ReadShort();
            }
            return(result);
        }
示例#13
0
        public void ReadSnapshot(int readVersion, IDataInputView input)
        {
            switch (readVersion)
            {
            case 3:
                break;

            default:
                throw new IOException("Unrecognized version: " + readVersion);
            }
        }
        public override double[] Deserialize(IDataInputView source)
        {
            var len    = source.ReadInt();
            var result = new double[len];

            for (var i = 0; i < len; i++)
            {
                result[i] = source.ReadDouble();
            }

            return(result);
        }
        public override int CompareSerialized(IDataInputView firstSource, IDataInputView secondSource)
        {
            var firstCount  = firstSource.ReadInt();
            var secondCount = secondSource.ReadInt();

            for (var x = 0; x < Math.Min(firstCount, secondCount); x++)
            {
                var result = Comparator.CompareSerialized(firstSource, secondSource);
                if (result != 0)
                {
                    return(result);
                }
            }

            var cmp = firstCount - secondCount;

            return(Ascending ? cmp : -cmp);
        }
 public override VoidNamespace Deserialize(VoidNamespace reuse, IDataInputView source)
 {
     throw new System.NotImplementedException();
 }
 public override TElement[] ReadWithKeyDeNormalization(TElement[] reuse, IDataInputView source) => throw new UnSupportedOperationException();
示例#18
0
 public override int Deserialize(int reuse, IDataInputView source) => Deserialize(source);
 public override void Copy(IDataInputView source, IDataOutputView target)
 {
     throw new System.NotImplementedException();
 }
示例#20
0
 public override void Copy(IDataInputView source, IDataOutputView target) => target.WriteInt(source.ReadInt());
示例#21
0
 public override int Deserialize(IDataInputView source) => source.ReadInt();
示例#22
0
 public override string Deserialize(string reuse, IDataInputView source)
 {
     throw new NotImplementedException();
 }
示例#23
0
 public override bool Deserialize(bool reuse, IDataInputView source) => source.ReadBool();
 public override int CompareSerialized(IDataInputView firstSource, IDataInputView secondSource) =>
 CompareSerializedDate(firstSource, secondSource, AscendingComparison);
 public override short[] Deserialize(short[] reuse, IDataInputView source) => Deserialize(source);
示例#26
0
 public void Read(IDataInputView input)
 {
     throw new System.NotImplementedException();
 }
 public void Write(IDataInputView source, int numBytes)
 {
     throw new System.NotImplementedException();
 }
示例#28
0
 public override double Deserialize(IDataInputView source) => source.ReadDouble();
示例#29
0
 public override double Deserialize(double reuse, IDataInputView source) => Deserialize(source);
 public override byte Deserialize(byte reuse, IDataInputView source) => Deserialize(source);