// TRANSMIT public bool Transmit(IChannelTransmissor transmissor, IState state) { if (_transmissors.Contains(transmissor)) { performDelay(state); performNoise(state); return Difussion(transmissor, state); } else { throw new ExceptionChannel(); } }
private void DoOnTransmit(IChannelTransmissor receiver, IInformationState state) { if (OnTransmit != null) { OnTransmit(this, state); }; }
public void RemoveTransmissor(IChannelTransmissor transmissor) { checkTransmissorType(transmissor); internalRemoveTransmissor(transmissor); }
public virtual bool Receive(IChannelTransmissor transmissor, IState state) { DoOnReceive(this, transmissor, state); Station.Receive(transmissor, state); return true; }
public void QuantumReceive(IChannelTransmissor transmissor, IState state) { _quantumStation.Receive(transmissor, state); }
private void RemoveHooks() { if (Channel != null) { IChannelReceiver[] receivers = Channel.GetAllReceivers(); IChannelTransmissor[] transmissors = Channel.GetAllTransmissors(); if (receivers.Length < 2) { return; } if (transmissors.Length < 2) { return; } masterreceiver = receivers[0]; slavereceiver = receivers[1]; mastertransmissor = transmissors[0]; slavetransmissor = transmissors[1]; masterreceiver.OnReceive -= new EventHandlerReceiverData(EventMasterReceive); slavereceiver.OnReceive -= new EventHandlerReceiverData(EventSlaveReceive); mastertransmissor.OnTransmit -= new EventHandlerTransmissorData(EventMasterTransmit); slavetransmissor.OnTransmit -= new EventHandlerTransmissorData(EventSlaveTransmit); } }
public override void Receive(IChannelTransmissor transmissor, IState state) { //return _receiver.Receive(null, state); PropagateOnReceive(transmissor, state); }
protected void internalAddTransmissor(IChannelTransmissor transmissor) { _transmissors.Add(transmissor); }
protected void internalRemoveTransmissor(IChannelTransmissor transmissor) { _transmissors.Remove(transmissor); }
public abstract void Receive(IChannelTransmissor transmissor, IState state);
protected virtual void checkTransmissorType(IChannelTransmissor transmissor) { }
protected void PropagateOnTransmit(IChannelTransmissor transmissor, IInformationState state) { if (OnTransmit != null) { OnTransmit(this, state); }; if (state is IQuantumState) { if (OnQuantumTransmit != null) { OnQuantumTransmit(this, (IQuantumState)state); }; } }
protected void PropagateOnReceive(IChannelTransmissor transmissor, IState state) { if (OnReceive != null) { OnReceive(this, state); }; if (state is IQuantumState) { if (OnQuantumReceive != null) { OnQuantumReceive(this, (IQuantumState)state); }; } }
public override void Receive(IChannelTransmissor transmissor, IState state) { //bool step1 = ClassicReceive(state); //bool step2 = QuantumReceive(state); //return (step1 && step2); PropagateOnReceive(this, state); }
private void EventSlaveReceive(IChannelReceiver receiver, IChannelTransmissor transmissor, IState state) { if (System.Object.ReferenceEquals(transmissor.Station, receiver.Station)) { return; }; labelDirectionA.ForeColor = Color.Gray; labelDirectionA.Update(); labelDirectionB.ForeColor = Color.Gray; labelDirectionB.Update(); panelChannel.BackColor = Color.Gray; panelChannel.Update(); string shortDebug = null; if (state is IQuantumState) { shortDebug = ((IQuantumState)state).Debugger.ShortDebug; } if (state is IClassicState) { shortDebug = ((IClassicState)state).Debugger.ShortDebug; } UpdateTextBox(this.textBoxStationB, "RECEIVED STATE", shortDebug); }
private void DoOnDifussion(IChannelTransmissor transmissor, IState state) { if (OnDifussion != null) { OnDifussion(this, transmissor, state); }; }
private void EventSlaveTransmit(IChannelTransmissor transmissor, IState state) { labelDirectionA.ForeColor = Color.Gray; labelDirectionA.Update(); labelDirectionB.ForeColor = Color.Red; labelDirectionB.Update(); panelChannel.BackColor = Color.Red; panelChannel.Update(); string shortDebug = null; if (state is IQuantumState) { shortDebug = ((IQuantumState)state).Debugger.ShortDebug; } if (state is IClassicState) { shortDebug = ((IClassicState)state).Debugger.ShortDebug; } UpdateTextBox(this.textBoxStationB, "SENT STATE", shortDebug); }
private bool PropagateDifussion(IChannelTransmissor transmissor, IState state) { bool result = true; foreach (IChannelReceiver receiver in _receivers) { result &= receiver.Receive(transmissor, state); } return result; }
protected void PropagateOnTransmit(IChannelTransmissor transmissor, IState state) { if (OnTransmit != null) { OnTransmit(this, state); }; if (state is IClassicState) { if (OnClassicTransmit != null) { OnClassicTransmit(this, (IClassicState)state); }; } }
public void AddTransmissor(IChannelTransmissor transmissor) { checkTransmissorType(transmissor); internalAddTransmissor(transmissor); }
protected override void checkTransmissorType(IChannelTransmissor transmissor) { if (!(transmissor is IQuantumChannelTransmissor)) { throw new QuantumChannelException(); } }
public bool Difussion(IChannelTransmissor transmissor, IState state) { DoOnDifussion(transmissor, state); return PropagateDifussion(transmissor, state); }
private void DoOnReceive(IChannelReceiver receiver, IChannelTransmissor transmissor, IState state) { if (OnReceive != null) { OnReceive(receiver, transmissor, state); }; }
public void ClassicReceive(IChannelTransmissor transmissor, IState state) { _classicStation.Receive(transmissor, state); }