Ejemplo n.º 1
0
        public void PipeFrom(IReadable <IMessage> reader)
        {
            _fromReader = reader;
            if (_fromReader.Reader.TryRegisterReaderHandler((msg) => msg.Accept(_msgVisitor), out int id))
            {
                void UnsubscribeFromReader()
                {
                    _fromReader.Reader.TryUnregisterReaderHandler(id);
                    _fromReader.Dispose();
                }

                // unsubscribe the message handler, then dispose the from reader.
                _unsubscriber.RegisterSubscription(UnsubscribeFromReader);
            }
        }