Пример #1
0
        private Guid SubscribeCore(IEventFilter filter,
                                   DataReceiveEventHandler receiveEventHandler,
                                   out IReceiverChannel channel)
        {
            Guid cookie;

            // создаем канал ответа (интегральный)
            var localChannel = UnitySingleton.Resolve <ITransport>().CreateIntegralChannel();

            channel = (IReceiverChannel)localChannel;

            // создаем кук
            cookie = Guid.NewGuid();

            // подписываемся на событие прихода данных по каналу
            if (receiveEventHandler != null)
            {
                channel.DataReceived += receiveEventHandler;
            }

            // посылаем команду в Blackboard
            _localBlackboard.Subscribe(filter, localChannel as ISenderChannel, cookie);

            return(cookie);
        }