// ********************************************************************** public QshReaderImpl(FileStream fs, Stream ds) : base(fs) { dr = new DataReader(ds); AppName = dr.ReadString(); Comment = dr.ReadString(); RecDateTime = baseDateTime = new DateTime(dr.ReadInt64(), DateTimeKind.Utc); int streamsCount = dr.ReadByte(); if(streamsCount == 0) throw new Exception("Нет потоков данных"); streams = new QshStream[streamsCount]; for(int i = 0; i < streams.Length; i++) { StreamType st = (StreamType)dr.ReadByte(); switch(st) { case StreamType.Stock: streams[i] = new StockStream(dr); break; case StreamType.Deals: streams[i] = new DealsStream(dr); break; case StreamType.Orders: streams[i] = new OrdersStream(dr); break; case StreamType.Trades: streams[i] = new TradesStream(dr); break; case StreamType.Messages: streams[i] = new MessagesStream(dr); break; case StreamType.AuxInfo: streams[i] = new AuxInfoStream(dr); break; default: throw new FormatException("Неизвестный тип данных: " + st); } } if(streams.Length == 1) currentStream = streams[0]; ReadNextRecordHeader(); }
// ********************************************************************** public TradesStream(DataReader dr) : base(StreamType.Trades, dr) { Security = new Security(dr.ReadString()); }
// ********************************************************************** public StockStream(DataReader dr) : base(StreamType.Stock, dr) { Security = new Security(dr.ReadString()); rawQuotes = new RawQuotes(); }
// ********************************************************************** public OwnTradesStream(DataReader dr) : base(StreamType.OwnTrades, dr) { Security = new Security(dr.ReadString()); }
// ********************************************************************** public DealsStream(DataReader dr) : base(StreamType.Deals, dr) { Security = new Security(dr.ReadString()); }
// ********************************************************************** public AuxInfoStream(DataReader dr) : base(StreamType.AuxInfo, dr) { Security = new Security(dr.ReadString()); }
// ********************************************************************** public OrdersStream(DataReader dr) : base(StreamType.Orders, dr) { Security = new Security(dr.ReadString()); }