Exemple #1
0
        public void SubscribeToBool <C>(string queryName, QueryDelegate <BoolResult, C> answer)
        {
            QueryKey key = new QueryKey(queryName, typeof(BoolResult));

            if (!boolListeners.ContainsKey(key))
            {
                boolListeners.Add(key, new Dictionary <int, QueryDelegateWrapper>());
            }

            int answerHash = answer.GetHashCode();

            if (!boolListeners[key].ContainsKey(answerHash))
            {
                QueryDelegateWrapper wrappedAnswer = (object context) => { return(answer((C)context)); };
                boolListeners[key].Add(answerHash, wrappedAnswer);
            }
        }
Exemple #2
0
        public void SubscribeToSum <T, C>(string queryName, QueryDelegate <T, C> answer) where T : struct
        {
            QueryKey key = new QueryKey(queryName, typeof(T));

            if (!numberListeners.ContainsKey(key))
            {
                numberListeners.Add(key, new Dictionary <int, QueryDelegateWrapper>());
            }

            int answerHash = answer.GetHashCode();

            if (!numberListeners[key].ContainsKey(answerHash))
            {
                QueryDelegateWrapper wrappedAnswer = (object context) => { return(answer((C)context)); };
                numberListeners[key].Add(answerHash, wrappedAnswer);
            }
        }