Thruway\Role\Dealer::handlesMessage PHP Method

handlesMessage() public method

Returns true if this role handles this message.
public handlesMessage ( Thruway\Message\Message $msg ) : boolean
$msg Thruway\Message\Message
return boolean
    public function handlesMessage(Message $msg)
    {
        $handledMsgCodes = [Message::MSG_CALL, Message::MSG_CANCEL, Message::MSG_REGISTER, Message::MSG_UNREGISTER, Message::MSG_YIELD, Message::MSG_INTERRUPT];
        if (in_array($msg->getMsgCode(), $handledMsgCodes)) {
            return true;
        } elseif ($msg instanceof ErrorMessage && $msg->getErrorMsgCode() == Message::MSG_INVOCATION) {
            return true;
        } elseif ($msg instanceof ErrorMessage && $msg->getErrorMsgCode() == Message::MSG_INTERRUPT) {
            return true;
        } else {
            return false;
        }
    }

Usage Example

Example #1
0
 public function testDealerHandlesCancelInterruptAndError()
 {
     $dealer = new \Thruway\Role\Dealer();
     $cancelMessage = new \Thruway\Message\CancelMessage(1, (object) []);
     $this->assertTrue($dealer->handlesMessage($cancelMessage));
     $interruptMessage = new \Thruway\Message\InterruptMessage(1, (object) []);
     $this->assertTrue($dealer->handlesMessage($interruptMessage));
     $interruptErrorMessage = \Thruway\Message\ErrorMessage::createErrorMessageFromMessage($interruptMessage);
     $this->assertTrue($dealer->handlesMessage($interruptErrorMessage));
 }