public void addToOutQueue(VirtualContainer4 container) { STM1 temp = new STM1(container); this.output.Enqueue(temp); Console.WriteLine("Stm1 added to output queue"); }
private void ListenThread(Object client) { TcpClient clienttmp = (TcpClient)client; BinaryReader reader = new BinaryReader(clienttmp.GetStream()); writer = new BinaryWriter(clienttmp.GetStream()); LRM.writer = new BinaryWriter(clienttmp.GetStream()); try { while (true) { string received_data = reader.ReadString(); //Console.WriteLine(received_data); JMessage received_object = JMessage.Deserialize(received_data); if (received_object.Type == typeof(Signal)) { Signal received_signal = received_object.Value.ToObject <Signal>(); if (received_signal.stm1 != null) { this.pathList = received_signal.path; STM1 frame = received_signal.stm1; int virtPort = received_signal.port; consoleWriter("received signal on port: " + virtPort); toVirtualPort(virtPort, frame); //Console.WriteLine(received_data); } else if (received_signal.lrmProtocol != null) { string lrmProtocol = received_signal.lrmProtocol; int port = received_signal.port; this.lrm.receivedMessage(lrmProtocol, port); //Console.WriteLine(received_data); } } } } catch (Exception e) { log("\nError sending signal: " + e.Message, ConsoleColor.Red); Thread.Sleep(2000); Environment.Exit(1); } }
public void clear() { this.currentFrame = new STM1(); }
public void addToInQueue(STM1 frame) { input.Enqueue(frame); Console.WriteLine("Stm1 added to input queue"); }
private void commutation() { while (flag) { int opt = commOption(); foreach (IPort iport in this.ports.iports) { //check if there is frame in queue and try to process it if (iport.input.Count > 0) { STM1 frame = iport.input.Dequeue(); //if (frame.vc4 != null) if (opt != 1) { Console.WriteLine("vc4"); int out_pos = -1; VirtualContainer4 vc4 = frame.vc4; out_pos = switchField.commutateContainer(vc4, iport.port); if (out_pos != -1) { log("ok", ConsoleColor.Green); this.ports.oports[out_pos].addToOutQueue(vc4); } } //else if (frame.vc4.vc3List.Count > 0) else { Console.WriteLine("vc3->vc4"); Console.WriteLine("unpacking container"); foreach (var vc in frame.vc4.vc3List) { VirtualContainer3 vc3 = vc.Value; if (vc3 != null) { int[] out_pos = { -1, -1 }; out_pos = switchField.commutateContainer(vc3, iport.port, vc.Key); if (out_pos[0] != -1) { log("ok", ConsoleColor.Green); this.ports.oports[out_pos[0]].addToTempQueue(vc3, out_pos[1]); } } } } //else //{ //Console.WriteLine("smth wrong with stm1"); //} } } foreach (OPort oport in this.ports.oports) { //packing STM from tempQueue to outqueue oport.addToOutQueue(); } foreach (OPort oport in this.ports.oports) { //check if there is frame in queue and try to send it if (oport.output.Count > 0) { STM1 frame = oport.output.Dequeue(); if (frame.vc4 != null || frame.vc4.vc3List.Count > 0) { try { pathList.Add(this.virtualIp); Signal signal = new Signal(oport.port, frame, pathList); consoleWriter("sending signal port: " + signal.port); string data = JMessage.Serialize(JMessage.FromValue(signal)); Console.WriteLine(data); writer.Write(data); } catch (Exception e) { log("\nError sending signal: " + e.Message, ConsoleColor.Red); Thread.Sleep(2000); Environment.Exit(1); } } } } Thread.Sleep(125); } }
private void toVirtualPort(int virtPort, STM1 received_frame) { ports.iports[virtPort].addToInQueue(received_frame); }