protected virtual void PropagateOnQuantumReceive(IChannelStation station, IQuantumState state)
 {
     _counterReceivedQuantum++;
     if (OnQuantumReceive != null)
     { OnQuantumReceive(this, state); };
 }
 protected virtual void PropagateOnQuantumTransmit(IChannelStation station, IQuantumState state)
 {
     _counterTransmitedQuantum++;
     if (OnQuantumTransmit != null)
     { OnQuantumTransmit(this, state); };
 }
 protected virtual void PropagateOnClassicReceive(IChannelStation station, IClassicState state)
 {
     _counterReceivedClassic++;
     if (OnClassicReceive != null)
     { OnClassicReceive(this, state); };
 }
 protected virtual void PropagateOnClassicTransmit(IChannelStation station, IClassicState state)
 {
     _counterTransmitedClassic++;
     if (OnClassicTransmit != null)
     { OnClassicTransmit(this, state); };
 }
 protected override void PropagateOnQuantumReceive(IChannelStation station, IQuantumState state)
 {
     if (Automata.State.ID == ProtocolBurstAgentAbstract.StatusIdle)
     {
         base.PropagateOnQuantumReceive(station, state);
     }
 }
 // CONSTRUCTOR
 public QuantumChannelTransmissorBasic(IChannelStation station)
     : base(station)
 {
 }
 // CONSTRUCTOR
 public ChannelTransmissorAbstraction(IChannelStation station)
     : base()
 {
     Station = station;
 }
 public ChannelReceiverAbstraction(IChannelStation station)
     : base()
 {
     Station = station;
 }
 // CONSTRUCTOR
 public ClassicChannelTransmissorBasic(IChannelStation station)
     : base(station)
 {
 }
        // EXPLORATION
        public virtual void Explore(IChannelStation station, string description)
        {
            try
            {
                if (InvokeRequired)
                {
                    StationTextDelegate methodDelegate = new StationTextDelegate(Explore);
                    BeginInvoke(methodDelegate, new object[] { station, description });
                }
                else
                {
                    this.Station = station;
                    this.textBoxStatus.Text = description;
                    Text += ": " + description;

                    Show();
                }
            }
            catch
            { }
        }
        protected void PropagateOnTransmit(IChannelStation station, IInformationState state)
        {
            if (OnTransmit != null)
            { OnTransmit(this, state); };

            if (state is IClassicState)
            {
                if (OnClassicTransmit != null)
                { OnClassicTransmit(this, (IClassicState)state); };
            }

            if (state is IQuantumState)
            {
                if (OnQuantumTransmit != null)
                { OnQuantumTransmit(this, (IQuantumState)state); };
            }
        }
        protected void PropagateOnReceive(IChannelStation station, IInformationState state)
        {
            if (OnReceive != null)
            { OnReceive(this, state); };

            if (state is IClassicState)
            {
                if (OnClassicReceive != null)
                { OnClassicReceive(this, (IClassicState)state); };
            }

            if (state is IQuantumState)
            {
                if (OnQuantumReceive != null)
                { OnQuantumReceive(this, (IQuantumState)state); };
            }
        }
 // CONSTRUCTOR
 public ClassicChannelReceiverBasic(IChannelStation station)
     : base(station)
 {
 }
 protected void PropagateOnReceive(IChannelStation station, IInformationState state)
 {
     if (OnReceive != null)
     { OnReceive(this, state); };
 }
 protected override void PropagateOnQuantumReceive(IChannelStation station, IQuantumState state)
 {
     base.PropagateOnQuantumReceive(station, state);
 }
 protected void PropagateOnTransmit(IChannelStation station, IInformationState state)
 {
     if (OnTransmit != null)
     { OnTransmit(this, state); };
 }
 protected override void PropagateOnClassicReceive(IChannelStation station, IClassicState state)
 {
     IClassicBit tempBit = ClassicDatatypeFactory.generateBit(false);
     tempBit.AssociateState(state);
     ReceivedData.Add(ClassicDatatypeFactory.decodeBitByUsualBasis(tempBit));
     base.PropagateOnClassicReceive(station,state);
 }
 // CONSTRUCTOR
 public QuantumChannelReceiverBasic(IChannelStation station)
     : base(station)
 {
 }
 protected override void PropagateOnClassicReceive(IChannelStation station, IClassicState state)
 {
     if (Automata.State.ID != ProtocolBurstAgentAbstract.StatusSending)
     {
         IClassicBit tempBit = ClassicDatatypeFactory.generateBit(false);
         tempBit.AssociateState(state);
         BufferReceive.Add(ClassicDatatypeFactory.decodeBitByUsualBasis(tempBit));
     }
     base.PropagateOnClassicReceive(station, state);
 }