Beispiel #1
0
        public virtual void OnPGApiTerminated()
        {
            pgWebSocket.TerminatePGWebSocket();

            SubscribedSymbols.Clear();
            DefaultChannels.Clear();
        }
Beispiel #2
0
        public bool IsSymbolSubscribed(string Symbol)
        {
            bool IsSubscribed;

            lock (SubscribedSymbols)
                IsSubscribed = SubscribedSymbols.ContainsKey(Symbol);

            return(IsSubscribed);
        }
Beispiel #3
0
 public void RemoveSymbol(string Symbol)
 {
     lock ( SubscribedSymbols )
     {
         UnSubscribeSymbol(Symbol);
         SubscribeSymbolRec Rec = GetSubscribeSymbolRec(Symbol);
         if (Rec != null)
         {
             SubscribedSymbols.Remove(GetSymbolOnly(Symbol));
         }
     }
 }
Beispiel #4
0
        public SubscribeSymbolRec GetSubscribeSymbolRec(string Symbol, bool Create = false)
        {
            Symbol = GetSymbolOnly(Symbol);

            SubscribeSymbolRec Rec;

            if (!SubscribedSymbols.TryGetValue(Symbol, out Rec) && !Create)
            {
                // alert event listeners to no rec found
                OnNoSubscribeSymbolRecEvent?.Invoke(Symbol);
            }

            return(Rec);
        }
Beispiel #5
0
        private void VerifyRemainingChannels(string Params)
        {
            List <string> Symbols = Params.Split(',').ToList();

            foreach (var Symbol in Symbols)
            {
                SubscribeSymbolRec Rec = GetSubscribeSymbolRec(Symbol);
                if (Rec != null)
                {
                    foreach (string Channel in Symbols)
                    {
                        Rec.Channels.Remove(GetChannelOnly(Channel));
                    }

                    if (Rec.Channels.Count == 0)
                    {
                        SubscribedSymbols.Remove(Rec.Symbol);
                    }

                    // reset values
                    Rec.ChannelsWereRemoved = false;
                }
            }
        }