public void RemoveHandledHandler(int handlerTypeCode) { IMessageHandlerProxy handler; if (_handlerDict.TryRemove(handlerTypeCode, out handler)) { if (_handlerDict.IsEmpty) { _parentMessageStream.OnMessageHandled(Message); } } }
private void DispatchMessage(IMessage message, DisptachingMessageStream messageStream) { var handlers = _handlerProvider.GetHandlers(message.GetType()); if (!handlers.Any()) { messageStream.OnMessageHandled(message); return; } var dispatchingMessage = new DisptachingMessage(message, messageStream, handlers, _typeCodeProvider); foreach (var handler in handlers) { DispatchMessageToHandlerAsync(dispatchingMessage, handler, 0); } }
private void DispatchMessage(IMessage message, DisptachingMessageStream messageStream) { var handlers = _handlerProvider.GetHandlers(message.GetType()); if (!handlers.Any()) { messageStream.OnMessageHandled(message); return; } var dispatchingMessage = new DisptachingMessage(message, messageStream, handlers, _typeCodeProvider); foreach (var handler in handlers) { DispatchMessageToHandlerAsync(dispatchingMessage, handler, 0); } }