public void Broadcast(IMeshNetworkMessage networkMessage) { if (_mesh.GetPeers().Count() > 1) { _mesh.Broadcast(Encoding.UTF8.GetBytes(Wrap(networkMessage))); } }
public void Deliver(IMeshNetworkMessage networkMessage) { if (!(networkMessage is TMessage)) throw new ArgumentException("Message is not the correct type"); _DeliveryAction.Invoke(networkMessage as TMessage); }
public void Deliver(IMeshNetworkMessage networkMessage) { if (!(networkMessage is TMessage)) throw new ArgumentException("Message is not the correct type"); if (!_DeliveryAction.IsAlive) return; ((Action<TMessage>)_DeliveryAction.Target).Invoke(networkMessage as TMessage); }
public bool ShouldAttemptDelivery(IMeshNetworkMessage networkMessage) { if (networkMessage == null) return false; if (!(typeof(TMessage).IsAssignableFrom(networkMessage.GetType()))) return false; return _MessageFilter.Invoke(networkMessage as TMessage); }
public bool ShouldAttemptDelivery(IMeshNetworkMessage networkMessage) { if (networkMessage == null) return false; if (!(typeof(TMessage).IsAssignableFrom(networkMessage.GetType()))) return false; if (!_DeliveryAction.IsAlive) return false; if (!_MessageFilter.IsAlive) return false; return ((Func<TMessage, bool>)_MessageFilter.Target).Invoke(networkMessage as TMessage); }
public void Deliver(IMeshNetworkMessage networkMessage, IMeshNetworkMessageSubscription subscription) { subscription.Deliver(networkMessage); }
public void Handle(IMeshNetworkMessage networkMessage, Exception exception) { //default behaviour is to do nothing }