public void AddReactor(IMessageReactor messageReactor) { messageReactor.Initialize(dataStoreManager); messageReactors.Add(messageReactor); var instance = messageReactor as IVariableFallbackHandler; if (instance != null) variableHandler.AddFallbackHandler(instance); }
public void AddReactor(IMessageReactor messageReactor) { messageReactor.Initialize(dataStoreManager); messageReactors.Add(messageReactor); var instance = messageReactor as IVariableFallbackHandler; if (instance != null) { variableHandler.AddFallbackHandler(instance); } }
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); }
public abstract void AddMessageReactor(IMessageReactor <TMessage> reactor);