public override void SendSystemMessage(ISystemMessage message)
{
try
{
//send to remote, unless watch message is intercepted by the remoteWatcher
var watch = message as Watch;
if (watch != null && IsWatchIntercepted(watch.Watchee, watch.Watcher))
{
RemoteProvider.RemoteWatcher.Tell(new RemoteWatcher.WatchRemote(watch.Watchee, watch.Watcher));
}
else
{
var unwatch = message as Unwatch;
if (unwatch != null && IsWatchIntercepted(unwatch.Watchee, unwatch.Watcher))
{
RemoteProvider.RemoteWatcher.Tell(new RemoteWatcher.UnwatchRemote(unwatch.Watchee,
unwatch.Watcher));
}
else
{
Remote.Send(message, null, this);
}
}
}
catch (Exception ex)
{
HandleException(ex);
}
}