void Listen() { var isConnected = false; var isDisconnected = true; var lastSessionInfoUpdate = -1; try { foreach (var d in instance.GetDataFeed(logging: false)) { if (requestCancel) { return; } if (!isConnected && d.IsConnected) { isConnected = true; isDisconnected = false; connected.Invoke(); } if (!isDisconnected && !d.IsConnected) { isConnected = false; isDisconnected = true; disconnected.Invoke(); } if (d.IsConnected) { newData.Invoke(d); } if (d.IsConnected && d.SessionData.InfoUpdate != lastSessionInfoUpdate) { lastSessionInfoUpdate = d.SessionData.InfoUpdate; newSessionData.Invoke(d); } } } catch (Exception e) { Trace.WriteLine(e.Message, "DEBUG"); Trace.WriteLine(e.StackTrace, "DEBUG"); } finally { backListener = null; } }
public static IEnumerable <DataSample> GetDataFeed() { return(instance.GetDataFeed()); }