public override void Add(TrieMapMatcher.PartialApproxMatch <K, V> pam)
            {
                Match <K, V> m   = new MultiMatch <K, V>(pam.matched, pam.value, pam.begin, pam.end, pam.multimatches);
                int          key = (pam.multimatches != null) ? pam.multimatches.Count : 0;

                if (pam.value == null)
                {
                    key = key + 1;
                }
                BoundedCostOrderedMap <Match <K, V>, TrieMapMatcher.PartialApproxMatch <K, V> > mq = multimatchQueues[key];

                if (mq == null)
                {
                    multimatchQueues[key] = mq = new BoundedCostOrderedMap <Match <K, V>, TrieMapMatcher.PartialApproxMatch <K, V> >(MatchCostFunction, maxSize, maxCost);
                }
                mq[m] = pam;
            }
 public MatchQueue(int maxSize, double maxCost)
 {
     this.maxSize = maxSize;
     this.maxCost = maxCost;
     this.queue   = new BoundedCostOrderedMap <Match <K, V>, TrieMapMatcher.PartialApproxMatch <K, V> >(MatchCostFunction, maxSize, maxCost);
 }