public void Subscribe(int phase, ILightstreamerListener listener) { StocklistHandyTableListener hl = new StocklistHandyTableListener(listener, phase); SimpleTableInfo tableInfo = new ExtendedTableInfo(items, "MERGE", fields, true); tableInfo.DataAdapter = "QUOTE_ADAPTER"; client.SubscribeTable(tableInfo, hl, false); }
internal VirtualTableManager(ExtendedTableInfo table, IFastItemsListener listener) { this.managerWithListener = null; this.extListener = null; this.fastListener = null; this.table = table; this.fastListener = listener; }
internal VirtualTableManager(ExtendedTableInfo table, IExtendedTableListener listener) { this.managerWithListener = null; this.extListener = null; this.fastListener = null; this.table = table; this.extListener = listener; }
internal VirtualTableManager(ExtendedTableInfo table, IHandyTableListener listener) { this.managerWithListener = null; this.extListener = null; this.fastListener = null; this.table = (ExtendedTableInfo) table.Clone(); this.managerWithListener = new FullTableManager(table, listener, false); }
internal VirtualTableManager(ExtendedTableInfo table, IHandyTableListener listener) { this.managerWithListener = null; this.extListener = null; this.fastListener = null; this.table = table; this.managerWithListener = new FullTableManager(table, listener, false); }
internal VirtualTableManager(ExtendedTableInfo table, IFastItemsListener listener) { this.managerWithListener = null; this.extListener = null; this.fastListener = null; this.table = (ExtendedTableInfo) table.Clone(); this.fastListener = listener; }
internal static void ProcessUpdate(Lightstreamer.DotNet.Client.ServerUpdateEvent values, int itemIndex, ExtendedTableInfo table, IExtendedTableListener listener) { string item = table.items[itemIndex]; if (values.EOS) { try { listener.OnSnapshotEnd(item); } catch (Exception) { } } else if (values.Overflow > 0) { if (!table.hasUnfilteredData()) { throw new PushServerException(7); } actionsLogger.Warn("Got notification of updates lost for item " + item); try { listener.OnRawUpdatesLost(item, values.Overflow); } catch (Exception) { } } else { if (values.Size != table.fields.Length) { throw new PushServerException(3); } IDictionary map = values.GetMap(table.fields); if (actionsLogger.IsDebugEnabled) { actionsLogger.Debug("Got event for item " + item + " with values " + CollectionsSupport.ToString(map)); } try { listener.OnUpdate(item, map); } catch (Exception) { } } }
public virtual Lightstreamer.DotNet.Client.SubscribedTableKey SubscribeTable(ExtendedTableInfo table, IHandyTableListener listener, bool commandLogic) { Lightstreamer.DotNet.Client.SubscribedTableKey key; ServerManager connManager = this.ConnManager; ITableManager manager2 = new FullTableManager(table, listener, commandLogic); try { key = connManager.SubscrTable(manager2, true); } catch (PhaseException) { throw new SubscrException("Connection closed"); } return(key); }
private static void ProcessFastUpdate(ServerUpdateEvent values, int itemIndex, ExtendedTableInfo table, IFastItemsListener listener) { if (values.EOS) { try { listener.OnSnapshotEnd(itemIndex + 1); } catch (Exception) { } } else if (values.Overflow > 0) { if (!table.hasUnfilteredData()) { throw new PushServerException(7); } try { listener.OnRawUpdatesLost(itemIndex + 1, values.Overflow); } catch (Exception) { } } else { if (values.Size != table.fields.Length) { throw new PushServerException(3); } string[] array = values.Array; if (actionsLogger.IsDebugEnabled) { actionsLogger.Debug("Got event for item " + table.items[itemIndex] + " with values " + CollectionsSupport.ToString(array) + " for fields " + CollectionsSupport.ToString(table.fields)); } try { listener.OnUpdate(itemIndex + 1, array); } catch (Exception) { } } }
internal FullTableManager(SimpleTableInfo table, IHandyTableListener listener, bool doCommandLogic) { this.baseInfo = (SimpleTableInfo) table.Clone(); this.isCommandLogic = doCommandLogic; if (table is ExtendedTableInfo) { this.extInfo = (ExtendedTableInfo) this.baseInfo; this.fieldIndexMap = new Dictionary<string, int>(); for (int i = 0; i < this.extInfo.fields.Length; i++) { this.fieldIndexMap[this.extInfo.fields[i]] = i; } } else { this.extInfo = null; this.fieldIndexMap = null; } this.listener = listener; }
internal FullTableManager(SimpleTableInfo table, IHandyTableListener listener, bool doCommandLogic) { this.baseInfo = table; this.isCommandLogic = doCommandLogic; if (table is ExtendedTableInfo) { this.extInfo = (ExtendedTableInfo)table; this.fieldIndexMap = new Hashtable(); for (int i = 0; i < this.extInfo.fields.Length; i++) { this.fieldIndexMap[this.extInfo.fields[i]] = i; } } else { this.extInfo = null; this.fieldIndexMap = null; } this.listener = listener; }
internal ExtendedTableManager(ExtendedTableInfo table, IExtendedTableListener listener) { this.table = (ExtendedTableInfo) table.Clone(); this.listener = listener; }
internal static void ProcessUpdate(Lightstreamer.DotNet.Client.ServerUpdateEvent values, int itemIndex, ExtendedTableInfo table, IExtendedTableListener listener) { string item = table.items[itemIndex]; if (values.EOS) { try { listener.OnSnapshotEnd(item); } catch (Exception) { } } else if (values.Overflow > 0) { if (!table.hasUnfilteredData()) { throw new PushServerException(7); } actionsLogger.Warn("Got notification of updates lost for item " + item); try { listener.OnRawUpdatesLost(item, values.Overflow); } catch (Exception) { } } else { if (values.Size != table.fields.Length) { throw new PushServerException(3); } IDictionary map = values.GetMap(table.fields); if (actionsLogger.IsDebugEnabled) { actionsLogger.Debug("Got event for item " + item + " with values " + CollectionsSupport.ToString(map)); } try { listener.OnUpdate(item, map); } catch (Exception) { } } }
public virtual Lightstreamer.DotNet.Client.SubscribedTableKey SubscribeTable(ExtendedTableInfo table, IHandyTableListener listener, bool commandLogic) { Lightstreamer.DotNet.Client.SubscribedTableKey CS$1$0000; ServerManager currConnManager = this.ConnManager; ITableManager tableInfo = new FullTableManager(table, listener, commandLogic); try { CS$1$0000 = currConnManager.SubscrTable(tableInfo, true); } catch (PhaseException) { throw new SubscrException("Connection closed"); } return CS$1$0000; }
/// <summary> /// L1 Prices subscription /// </summary> /// <param name="accountId"></param> /// <param name="tableListener"></param> public SubscribedTableKey subscribeToMarketDetails(string[] epics, IHandyTableListener tableListener, string[] fields) { string[] items = new string[epics.Length]; for (int i = 0; i < epics.Length; i++) { items[i] = "L1:" + epics[i]; } ExtendedTableInfo extTableInfo = new ExtendedTableInfo( items, "MERGE", fields, true ); return lsClient.SubscribeTable(extTableInfo, tableListener, false); }
public SubscribedTableKey subscribeToAccountDetailsKey(string accountId, IHandyTableListener tableListener, string[] fields) { ExtendedTableInfo extTableInfo = new ExtendedTableInfo( new string[] { "ACCOUNT:" + accountId }, "MERGE", fields, true ); return lsClient.SubscribeTable(extTableInfo, tableListener, false); }
public virtual Lightstreamer.DotNet.Client.SubscribedTableKey SubscribeTable(ExtendedTableInfo table, IExtendedTableListener listener) { Lightstreamer.DotNet.Client.SubscribedTableKey key; ServerManager connManager = this.ConnManager; ITableManager manager2 = new ExtendedTableManager(table, listener); try { key = connManager.SubscrTable(manager2, true); } catch (PhaseException) { throw new SubscrException("Connection closed"); } return key; }
private void Subscribe() { lock (this) { this.syncContext.Send(this.cleanModel,""); //this method will try just one subscription. //we know that when this method executes we should be already connected //If we're not or we disconnect while subscribing we don't have to do anything here as an //event will be (or was) sent to the ConnectionListener that will handle the case. //If we're connected but the subscription fails we can't do anything as the same subscription //would fail again and again (btw this should never happen) try { ExtendedTableInfo tableInfo = new ExtendedTableInfo( new string[] { "item1", "item2", "item3", "item4", "item5", "item6", "item7", "item8", "item9", "item10", "item11", "item12", "item13", "item14", "item15", "item16", "item17", "item18", "item19", "item20", "item21", "item22", "item23", "item24", "item25", "item26", "item27", "item28", "item29", "item30" }, "MERGE", new string[] { "stock_name", "last_price", "time", "pct_change", "bid_quantity", "bid", "ask", "ask_quantity", "min", "max", "ref_price", "open_price" }, true); tableInfo.DataAdapter = "QUOTE_ADAPTER"; client.SubscribeTable( tableInfo, new StocklistHandyTableListener(this, this.phase, gridModel), false); } catch (SubscrException e) { this.StatusChanged(this.phase, "No session is active: " + e.Message, null); } catch (PushServerException e) { this.StatusChanged(this.phase, "Unexpected error: " + e.Message, null); } catch (PushUserException e) { this.StatusChanged(this.phase, "Request refused: " + e.Message, null); } catch (PushConnException e) { this.StatusChanged(this.phase, "Control connection failed: " + e.Message, null); } } }
public virtual Lightstreamer.DotNet.Client.SubscribedTableKey[] SubscribeItems(ExtendedTableInfo items, IHandyTableListener listener) { Lightstreamer.DotNet.Client.SubscribedTableKey[] keyArray; ServerManager connManager = this.ConnManager; VirtualTableManager table = new VirtualTableManager(items, listener); try { keyArray = connManager.SubscrItems(table, true); } catch (PhaseException) { throw new SubscrException("Connection closed"); } return(keyArray); }
public virtual Lightstreamer.DotNet.Client.SubscribedTableKey[] SubscribeItems(ExtendedTableInfo items, IHandyTableListener listener) { Lightstreamer.DotNet.Client.SubscribedTableKey[] CS$1$0000; ServerManager currConnManager = this.ConnManager; VirtualTableManager tableInfo = new VirtualTableManager(items, listener); try { CS$1$0000 = currConnManager.SubscrItems(tableInfo, true); } catch (PhaseException) { throw new SubscrException("Connection closed"); } return CS$1$0000; }
public virtual SubscribedTableKey SubscribeTable(ExtendedTableInfo table, IHandyTableListener listener, bool commandLogic) { SubscribedTableKey key; ServerManager connManager = this.ConnManager; ITableManager manager2 = new FullTableManager(table, listener, commandLogic); try { key = connManager.SubscrTable(manager2, true); } catch (PhaseException) { throw new SubscrException("Connection closed"); } return key; }
public SubscribedTableKey subscribeToTradeSubscription(string accountId, IHandyTableListener tableListener, string[] fields) { ExtendedTableInfo extTableInfo = new ExtendedTableInfo( new string[] { "TRADE:" + accountId }, "DISTINCT", fields, true ); return lsClient.SubscribeTable(extTableInfo, tableListener, false); }
internal ExtendedTableManager(ExtendedTableInfo table, IExtendedTableListener listener) { this.table = table; this.listener = listener; }
private static void ProcessFastUpdate(Lightstreamer.DotNet.Client.ServerUpdateEvent values, int itemIndex, ExtendedTableInfo table, IFastItemsListener listener) { if (values.EOS) { try { listener.OnSnapshotEnd(itemIndex + 1); } catch (Exception) { } } else if (values.Overflow > 0) { if (!table.hasUnfilteredData()) { throw new PushServerException(7); } try { listener.OnRawUpdatesLost(itemIndex + 1, values.Overflow); } catch (Exception) { } } else { if (values.Size != table.fields.Length) { throw new PushServerException(3); } string[] array = values.Array; if (actionsLogger.IsDebugEnabled) { actionsLogger.Debug("Got event for item " + table.items[itemIndex] + " with values " + CollectionsSupport.ToString(array) + " for fields " + CollectionsSupport.ToString(table.fields)); } try { listener.OnUpdate(itemIndex + 1, array); } catch (Exception) { } } }
public virtual SubscribedTableKey[] SubscribeItems(ExtendedTableInfo items, IHandyTableListener listener) { SubscribedTableKey[] keyArray; ServerManager connManager = this.ConnManager; VirtualTableManager table = new VirtualTableManager(items, listener); try { keyArray = connManager.SubscrItems(table, true); } catch (PhaseException) { throw new SubscrException("Connection closed"); } return keyArray; }