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);
        }
Beispiel #2
0
 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);
 }
Beispiel #5
0
 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)
                {
                }
            }
        }
Beispiel #14
0
 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;
 }
Beispiel #15
0
 /// <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);
 }
Beispiel #16
0
        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);
        }
Beispiel #17
0
 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;
 }
Beispiel #18
0
        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);
        }
Beispiel #20
0
 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;
 }
Beispiel #21
0
 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;
 }
Beispiel #22
0
 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;
 }
Beispiel #24
0
 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)
         {
         }
     }
 }
Beispiel #25
0
 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;
 }