Beispiel #1
0
        /// <summary>
        /// Remove the instruments.
        /// </summary>
        /// <param name="securities">The instruments.</param>
        public void RemoveRange(IEnumerable <Security> securities)
        {
            if (securities == null)
            {
                throw new ArgumentNullException(nameof(securities));
            }

            securities = securities.ToArray();

            lock (_sync)
            {
                if (securities.Count() > 1000 || (_allSecurities.Count > 1000 && securities.Count() > _allSecurities.Count * 0.1))
                {
                    _allSecurities.RemoveRange(securities);

                    securities = _allSecurities.ToArray();

                    _allSecurities.Clear();
                    _trie.Clear();

                    securities.ForEach(Add);
                }
                else
                {
                    _trie.RemoveRange(securities);
                    _allSecurities.RemoveRange(securities);
                }
            }
        }
 public void Test16()
 {
     trie.AddWord("");
     Assert.AreNotEqual(0, trie.GetWords().Count);
     trie.Clear();
     Assert.AreEqual(0, trie.GetWords().Count);
 }
Beispiel #3
0
 /// <summary>
 /// Remove all instruments.
 /// </summary>
 public void Clear()
 {
     lock (_sync)
     {
         _trie.Clear();
         _allSecurities.Clear();
     }
 }
        private void ClearSecurities()
        {
            lock (_sync)
            {
                _trie.Clear();
                _allSecurities.Clear();
            }

            //ExcludedCount = 0;

            Cleared.SafeInvoke();
        }
Beispiel #5
0
        public void TrieContractClear1()
        {
            ITrie <String, char, String> trie = this.GetInstance();

            trie.Add("test", "a");

            Assert.AreEqual("a", trie["test"]);

            trie.Clear();

            Assert.IsFalse(trie.ContainsKey("test"));
        }
        /// <summary>
        /// Создать <see cref="FilterableSecurityProvider"/>.
        /// </summary>
        /// <param name="securities">Инструменты.</param>
        /// <param name="excludeFilter">Фильтр для исключения инструментов.</param>
        public FilterableSecurityProvider(ISecurityList securities, Func <Security, bool> excludeFilter = null)
        {
            if (securities == null)
            {
                throw new ArgumentNullException("securities");
            }

            Securities    = securities;
            ExcludeFilter = excludeFilter;

            Securities.Added    += AddSuffix;
            Securities.Inserted += (i, s) => AddSuffix(s);

            Securities.Removed += s =>
            {
                lock (_trie)
                    _trie.Remove(s);

                if (ExcludeFilter != null && ExcludeFilter(s))
                {
                    ExcludedCount--;
                }

                SecuritiesChanged.SafeInvoke(NotifyCollectionChangedAction.Remove, s);
            };

            Securities.Cleared += () =>
            {
                lock (_trie)
                    _trie.Clear();

                ExcludedCount = 0;
                SecuritiesChanged.SafeInvoke(NotifyCollectionChangedAction.Reset, null);
            };

            Securities.ForEach(AddSuffix);
        }
Beispiel #7
0
 /// <summary>
 /// Clears all interned URIs
 /// </summary>
 public static void Clear()
 {
     _uris.Clear();
 }
Beispiel #8
0
 public void Clear01()
 {
     Assert.AreNotEqual(0, trie.GetWords().Count);
     trie.Clear();
     Assert.AreEqual(0, trie.GetWords().Count);
 }