public AyudanteStream(IContratoDeServicioCliente participante, string nombreNodo, CompartirStreamHandler stream) { mNombreNodo = nombreNodo; estadoStream = EstadoStream.Inicial; mTrozo = 0; mUltimoTrozo = -1; compartirStream = stream; mTimer = new Timer(new TimerCallback(Vigilante)); mTimer.Change(0, 20000); }
public void Vigilante(object state) { if (estadoStream == EstadoStream.Procesando) { if (mTrozo == mUltimoTrozo) { estadoStream = EstadoStream.Inicial; if (null != mTimeoutRecibidoChanged) { mTimeoutRecibidoChanged(this, new EventArgs()); } } else { mUltimoTrozo = mTrozo; } } }
public void CompartirStream(StreamPacket sp) { switch (estadoStream) { case EstadoStream.Inicial: estadoStream = EstadoStream.Procesando; mUltimoTrozo = -1; break; case EstadoStream.Procesando: mTrozo = sp.numPacket; if (sp.esFinalDeStream) { estadoStream = EstadoStream.Inicial; } break; } if (null != StreamChanged) { StreamChanged(this, new StreamChangedEventArgs(sp)); } }