public void StartWatch(string Symbol, LevelIIUpdateMessageHandler handler) { LevelIIUpdateMessageHandler mh = null; if (htWatchEvents.ContainsKey(Symbol)) { mh = htWatchEvents[Symbol] as LevelIIUpdateMessageHandler; mh += handler; } else { mh += handler; htWatchEvents.Add(Symbol, mh); bs.Send('w' + Symbol + "\n"); } }
public void StopWatch(string Symbol, LevelIIUpdateMessageHandler handler) { LevelIIUpdateMessageHandler mh = null; if (htWatchEvents.ContainsKey(Symbol)) { mh = htWatchEvents[Symbol] as LevelIIUpdateMessageHandler; mh -= handler; if (null == mh) { Console.WriteLine("Stopping watch on {0}", Symbol); bs.Send('r' + Symbol + "\n"); htWatchEvents.Remove(Symbol); } } }
private void UMessage(BufferArgs args) { LevelIIUpdateMessage Message; try { Message = new LevelIIUpdateMessage(args.items); if (htWatchEvents.ContainsKey(Message.Symbol)) { LevelIIUpdateMessageHandler mh = htWatchEvents[Message.Symbol] as LevelIIUpdateMessageHandler; if (null != mh) { mh(this, new LevelIIUpdateMessageEventArgs(Message)); } } } catch (Exception e) { Console.WriteLine("IQFeedLevelII.UMessage error: " + args.Line); Console.WriteLine(" ** Exception {0}", e.ToString()); } }