コード例 #1
0
        public void AddReactor(IMessageReactor messageReactor)
        {
            messageReactor.Initialize(dataStoreManager);
            messageReactors.Add(messageReactor);

            var instance = messageReactor as IVariableFallbackHandler;
            if (instance != null)
                variableHandler.AddFallbackHandler(instance);
        }
コード例 #2
0
        public void AddReactor(IMessageReactor messageReactor)
        {
            messageReactor.Initialize(dataStoreManager);
            messageReactors.Add(messageReactor);

            var instance = messageReactor as IVariableFallbackHandler;

            if (instance != null)
            {
                variableHandler.AddFallbackHandler(instance);
            }
        }
コード例 #3
0
        public override void AddMessageReactor(IMessageReactor <TMessage> reactor)
        {
            if (m_Reactors == null)
            {
                m_Reactors = new Dictionary <int, IDisposable>();
            }
            else if (m_Reactors.ContainsKey(reactor.GetHashCode()))
            {
                throw new InvalidOperationException("This reactor is already reacting to messages.");
            }

            // Hook up the reactor to the stream - every time the stream is written to,
            // the reactors's React() method will be called.
            IDisposable observer = m_Stream.Subscribe(
                m => reactor.React(m),
                () => reactor.OnEndOfStream());

            m_Reactors.Add(reactor.GetHashCode(), observer);
        }
コード例 #4
0
 public abstract void AddMessageReactor(IMessageReactor <TMessage> reactor);