private bool AddAtmCellToOutputPort(AtmCell cell, int portNumber) { foreach (var outPort in OutputPorts) { if (portNumber == outPort.GetPortNumber()) { outPort.AddAtmCell(cell); return(true); } } return(false); }
/* Metoda dodająca komórkę ATM do bufora pola komutacyjnego*/ public void AddAtmCellToInputPort(AtmCell cell, int portNumber) { foreach (var inPort in _inputPorts) { if (portNumber == inPort.GetPortNumber()) { inPort.AddAtmCell(cell); lock (_matrixThread) { Monitor.Pulse(_matrixThread); } return; } } }
/* Metoda zmieniająca VPI, VCI na podstawie tabeli */ public bool Commute(AtmCell cell, int inPortNumber) { var row = _commutationTable.FindRow(cell.Vpi, cell.Vci, inPortNumber); if (row != null) { //Console.Write("["+DateTime.Now + "] Changed inVpi: " + cell.Vpi + " inVci: "+cell.Vci); cell.Vpi = row.GetOutVpi(); if (row.GetOutVci() != -1) { cell.Vci = row.GetOutVci(); } //OnUpdateState(" outVpi: " + cell.Vpi + " outVci: " + cell.Vci); return(AddAtmCellToOutputPort(cell, row.GetOutPort())); } //else // OnUpdateState("WYWALILO BLAD"); return(false); }
public void AddAtmCell(AtmCell cell) { _lastAddTime = DateTime.Now; _atmCells.Enqueue(cell); }