Пример #1
0
        //------------------------------------------------------------------------------------------------------------------------
        void _recAdd(string[] elements, TKey key, int index)
        {
            //check
            if (elements == null || elements.Length == 0)
            {
                return;
            }

            //check if index is last element
            if (index >= elements.Length)
            {
                //add to keys
                Keys.Add(key);
            }
            else if (index == elements.Length - 1 && (elements[index] == "#" || elements[index] == "+"))
            {
                //add to promiscious keys
                PromiscuousKeys.Add(key);
            }
            else
            {
                //add on proper list
                MqttTopicNode <TKey> node;
                lock (Children)
                {
                    node = Children.TryGetOrDefault(elements[index]);
                    if (node == null)
                    {
                        Children.Add(elements[index], node = new MqttTopicNode <TKey>()
                        {
                            ParentNode = this, TopicNodeId = elements[index]
                        });
                    }
                }
                //continue recursion
                node._recAdd(elements, key, index + 1);
            }
        }
Пример #2
0
        //------------------------------------------------------------------------------------------------------------------------
        public int CountForKey(TKey key)
        {
            var values = InternalObject.TryGetOrDefault(key);

            return(values == null ? 0 : values.Count);
        }