Exemple #1
0
 public static FrameSOA ConvertirFrame(Frame frameLogico)
 {
     FrameSOA frameSOA = new FrameSOA();
     frameSOA.MACAddressOrigen = frameLogico.MACAddressOrigen;
     frameSOA.MACAddressDestino = frameLogico.MACAddressDestino;
     frameSOA.Info = frameLogico.Informacion.ToString();            
     return frameSOA;
 }
        private void TransmitirFrameATodosLosPuertos(PuertoEthernetLogicoBase puertoQueRecibioElFrame, Frame frameATransmitir)
        {
            foreach (PuertoEthernetLogicoBase puertoEthernet in _puertosEthernet)
            {
                if (puertoEthernet == puertoQueRecibioElFrame)
                    continue;

                ((IEnvioReciboDatos)puertoEthernet).TransmitirFrame(frameATransmitir);
            }
        }
        public FrameRecibidoEventArgs(Frame frame,TimeSpan horaDeRecepcion)
        {
            _frameRecibido = frame;
            _horaDeRecepcion = horaDeRecepcion;

        }
 public FrameTransmitidoEventArgs(Frame frame,TimeSpan horaTransmision)
 {
     _frameTransmitido = frame;
     _horaDeTransmision = horaTransmision;
 }
 private void EventPaqueteDesencapsulador(Frame frame)
 {
     PaqueteDesencapsuladoEventArgs evento = new PaqueteDesencapsuladoEventArgs(frame, BusinessLogic.Threads.ThreadManager.HoraActual);
     if (PaqueteDesEncapsulado != null)
         PaqueteDesEncapsulado(this, evento);
 }
 private void EventPaqueteEncapsulado(Frame frameATransmitir)
 {
     PaqueteEncapsuladoEventArgs evento = new PaqueteEncapsuladoEventArgs(frameATransmitir, BusinessLogic.Threads.ThreadManager.HoraActual);
     if (PaqueteEncapsulado != null)
         PaqueteEncapsulado(this, evento);
 }
        private void EnviarFrame(IFrameMessage mensaje, string MACDestino)
        {
            Frame frameATransmitir = new Frame(mensaje, _puerto.MACAddress, MACDestino);
            if (mensaje is Packet)
                EventPaqueteEncapsulado(frameATransmitir);
            ((IEnvioReciboDatos)_puerto).TransmitirFrame(frameATransmitir);

        }
 public PaqueteEncapsuladoEventArgs(Frame frame, TimeSpan horaDeRecepcion)
 {
     _frame = frame;
     _horaDeRecepcion = horaDeRecepcion;
 }
 private void RegistrarFrame(PuertoEthernetLogicoBase puertoQueRecibioElFrame, Frame frameRecibido)
 {
     string direccionMacOrigen = frameRecibido.MACAddressOrigen;
     if (!_switchTable.YaEstaRegistradoDireccionMAC(direccionMacOrigen))
         _switchTable.RegistrarDireccionMAC(direccionMacOrigen, puertoQueRecibioElFrame);
 }
		void IEnvioReciboDatos.RecibirFrame(Frame frame)
		{
			lock (_syncObjectRecibidos)
			{
				_bufferFramesRecibidos.Enqueue(frame);
			}
			whREc.Set();



		}
		void IEnvioReciboDatos.TransmitirFrame(Frame frame)
		{

			lock (_syncObjectEnviados)
			{
				_bufferFramesAEnviar.Enqueue(frame);
			}
			whTrans.Set();

		}
		private void OnFrameRecibido(Frame frame)
		{
			if (FrameRecibido != null)
                FrameRecibido(this, new FrameRecibidoEventArgs(frame, BusinessLogic.Threads.ThreadManager.HoraActual));
		}