public bool MethodReceived(AMQMethodEvent evt) { _logger.Debug(String.Format("Finding method handler. currentState={0} type={1}", _currentState, evt.Method.GetType())); //Console.WriteLine(String.Format("Finding method handler. currentState={0} type={1}", _currentState, evt.Method.GetType())); //KHC IStateAwareMethodListener handler = FindStateTransitionHandler(_currentState, evt.Method); if (handler != null) { handler.MethodReceived(this, evt); //Console.WriteLine(" MethodReceived return true, newState={0}", _currentState); return(true); } //Console.WriteLine(" MethodReceived return false, currentState={0}", _currentState); return(false); }
/// <summary> /// Finds the state transition handler. /// </summary> /// <param name="currentState">State of the current.</param> /// <param name="frame">The frame.</param> /// <returns></returns> /// <exception cref="IllegalStateTransitionException">if the state transition if not allowed</exception> private IStateAwareMethodListener FindStateTransitionHandler(AMQState currentState, AMQMethodBody frame) { Type clazz = frame.GetType(); if (_logger.IsDebugEnabled) { _logger.Debug("Looking for state transition handler for frame " + clazz); } IDictionary classToHandlerMap = (IDictionary)_state2HandlersMap[currentState]; if (classToHandlerMap == null) { // if no specialised per state handler is registered look for a // handler registered for "all" states return(FindStateTransitionHandler(AMQState.ALL, frame)); } IStateAwareMethodListener handler = (IStateAwareMethodListener)classToHandlerMap[clazz]; if (handler == null) { if (currentState == AMQState.ALL) { _logger.Debug("No state transition handler defined for receiving frame " + frame); Console.WriteLine(" *** No state transition handler defined for receiving frame " + frame); //KHC return(null); } else { // if no specialised per state handler is registered look for a // handler registered for "all" states return(FindStateTransitionHandler(AMQState.ALL, frame)); } } else { return(handler); } }