FastQuant.BarStreamer.Read C# (CSharp) Method

Read() public method

public Read ( BinaryReader reader, byte version ) : object
reader System.IO.BinaryReader
version byte
return object
        public override object Read(BinaryReader reader, byte version)
        {
            var bar = new Bar();
            bar.DateTime = new DateTime(reader.ReadInt64());
            bar.OpenDateTime = new DateTime(reader.ReadInt64());
            bar.InstrumentId = reader.ReadInt32();
            bar.Size = reader.ReadInt64();
            bar.High = reader.ReadDouble();
            bar.Low = reader.ReadDouble();
            bar.Open = reader.ReadDouble();
            bar.Close = reader.ReadDouble();
            bar.Volume = reader.ReadInt64();
            bar.OpenInt = reader.ReadInt64();
            bar.Status = (BarStatus)reader.ReadByte();
            if (version >= 1)
                bar.Type = (BarType)reader.ReadByte();
            if (version >= 2)
            {
                bar.ProviderId = reader.ReadInt32();
            }
            if (version <= 2)
            {
                int num = reader.ReadInt32();
                if (num != 0)
                {
                    //bar.Fields = new ObjectTable();
                    for (var i = 0; i < num; i++)
                    {
                        bar.Fields[i] = reader.ReadDouble();
                    }
                }
            }
            if (version >= 3 && reader.ReadBoolean())
            {
                var fields = (ObjectTable)this.streamerManager.Deserialize(reader);
                for (int i = 0; i < fields.Size; i++)
                {
                    bar.Fields[i] = fields[i];
                }
                //    bar.Fields = (ObjectTable)this.streamerManager.Deserialize(reader);

            }
            return bar;
        }