FastQuant.InstrumentStreamer.Write C# (CSharp) Method

Write() public method

public Write ( BinaryWriter writer, object obj ) : void
writer System.IO.BinaryWriter
obj object
return void
        public override void Write(BinaryWriter writer, object obj)
        {
            var instrument = (Instrument)obj;
            writer.Write(instrument.Id);
            writer.Write((byte)instrument.Type);
            writer.Write(instrument.Symbol);
            writer.Write(instrument.Description);
            writer.Write(instrument.CurrencyId);
            writer.Write(instrument.Exchange);
            writer.Write(instrument.TickSize);
            writer.Write(instrument.Maturity.Ticks);
            writer.Write(instrument.Factor);
            writer.Write(instrument.Strike);
            writer.Write((byte)instrument.PutCall);
            writer.Write(instrument.Margin);
            writer.Write(instrument.AltId.Count);
            foreach (AltId altId in instrument.AltId)
                this.streamerManager.Serialize(writer, altId);
            writer.Write(instrument.Legs.Count);
            foreach (Leg leg in instrument.Legs)
                this.streamerManager.Serialize(writer, leg);
            if (this.version == 0)
            {
                writer.Write(instrument.Fields.Size);
                for (int i = 0; i < instrument.Fields.Size; i++)
                    writer.Write((double)instrument.Fields[i]);
            }

            if (this.version >= 1)
                writer.Write(instrument.PriceFormat);

            if (this.version >= 2)
            {
                writer.Write(instrument.CCY1);
                writer.Write(instrument.CCY2);
            }

            if (this.version >= 3)
                writer.Write(instrument.DeleteCached);

            if (this.version >= 4)
                writer.Write(instrument.Formula);

            if (this.version >= 5)
            {
                if (instrument.Fields == null)
                {
                    writer.Write(-1);
                }
                else
                {
                    writer.Write(instrument.Fields.Size);
                    this.streamerManager.Serialize(writer, instrument.Fields);
                }
            }
        }
    }