FastQuant.InstrumentStreamer.Read C# (CSharp) Méthode

Read() public méthode

public Read ( BinaryReader reader, byte version ) : object
reader System.IO.BinaryReader
version byte
Résultat object
        public override object Read(BinaryReader reader, byte version)
        {
            int id = reader.ReadInt32();
            var type = (InstrumentType)reader.ReadByte();
            var symbol = reader.ReadString();
            var description = reader.ReadString();
            var currencyId = reader.ReadByte();
            var exchange = reader.ReadString();
            var instrument = new Instrument(id, type, symbol, description, currencyId, exchange);
            instrument.TickSize = reader.ReadDouble();
            instrument.Maturity = new DateTime(reader.ReadInt64());
            instrument.Factor = reader.ReadDouble();
            instrument.Strike = reader.ReadDouble();
            instrument.PutCall = (PutCall)reader.ReadByte();
            instrument.Margin = reader.ReadDouble();

            int count = reader.ReadInt32();
            for (int i = 0; i < count; i++)
                instrument.AltId.Add((AltId)this.streamerManager.Deserialize(reader));

            count = reader.ReadInt32();
            for (int j = 0; j < count; j++)
                instrument.Legs.Add((Leg)this.streamerManager.Deserialize(reader));

            if (version == 0)
            {
                int cnt = reader.ReadInt32();
                for (int k = 0; k < cnt; k++)
                    instrument.Fields[k] = reader.ReadDouble();
            }

            if (version >= 1)
                instrument.PriceFormat = reader.ReadString();

            if (version >= 1 && version <= 4)
            {
                int size = reader.ReadInt32();
                if (size != -1)
                {
                    byte typeId = reader.ReadByte();
                    byte ver = reader.ReadByte();
                    var fields = new ObjectTable();
                    int index;
                    while ((index = reader.ReadInt32()) != -1)
                    {
                        typeId = reader.ReadByte();
                        var objectStreamer = this.streamerManager.Get(typeId);
                        fields[index] = objectStreamer.Read(reader, ver);
                    }
                    instrument.Fields = fields;
                }
            }
            if (version >= 2)
            {
                instrument.CCY1 = reader.ReadByte();
                instrument.CCY2 = reader.ReadByte();
            }

            if (version >= 3)
            {
                instrument.DeleteCached = reader.ReadBoolean();
            }

            if (version >= 4)
            {
                instrument.Formula = reader.ReadString();
            }

            if (version >= 5)
            {
                int eof = reader.ReadInt32();
                if (eof != -1)
                    instrument.Fields = (ObjectTable)this.streamerManager.Deserialize(reader);
            }
            return instrument;
        }