public bool Matches(Message m)
{
switch (Match)
{
case MessageReceiverRegistration.MatchType.Source:
if (Source == m.SourceDevice)
{
return true;
}
break;
case MessageReceiverRegistration.MatchType.Destination:
if (Destination == m.DestinationDevice
|| m.DestinationDevice == DeviceAddress.Broadcast
|| m.DestinationDevice == DeviceAddress.GlobalBroadcastAddress)
{
return true;
}
break;
case MessageReceiverRegistration.MatchType.SourceAndDestination:
if (Source == m.SourceDevice
&& (Destination == m.DestinationDevice
|| m.DestinationDevice == DeviceAddress.Broadcast
|| m.DestinationDevice == DeviceAddress.GlobalBroadcastAddress))
{
return true;
}
break;
case MessageReceiverRegistration.MatchType.SourceOrDestination:
if (Source == m.SourceDevice
|| Destination == m.DestinationDevice
|| m.DestinationDevice == DeviceAddress.Broadcast
|| m.DestinationDevice == DeviceAddress.GlobalBroadcastAddress)
{
return true;
}
break;
}
return false;
}