public void SerializeCableCloudMessageTest()
        {
            var message = new CableCloudMessage(1, AtmCell.Generate(1, 1, "TEST"));
            var data    = BinarySerializer.Serialize(message);
            var obj     = BinarySerializer.Deserialize(data);
            var msg     = new CableCloudMessage(1, AtmCell.Generate(1, 1, "TEST"));

            Debug.WriteLine(msg.PortNumber);
            if (obj is CableCloudMessage)
            {
                msg = (CableCloudMessage)obj;
            }
            Assert.AreEqual(message.PortNumber, msg.PortNumber);
            Debug.WriteLine(msg.PortNumber);
        }
Exemplo n.º 2
0
        /* Wątek pobierający komórki ATM z portów wyjściowych pola komutacyjnego i wysyłający je do chmury kablowej */

        private void RunThread()
        {
            while (!_timeToQuit)
            {
                var sent = false;
                foreach (var port in CommutationMatrix.OutputPorts)
                {
                    if (port.GetAtmCellNumber() != 0 &&
                        (DateTime.Now - port.GetLastAddTime()).TotalMilliseconds > MinLastAddTime ||
                        port.GetAtmCellNumber() > CableCloudMessage.MaxAtmCellsNumber)
                    {
                        // OnUpdateState("Różnica czasu: " + (DateTime.Now - port.GetLastAddTime()).TotalMilliseconds + "   if max: " + (port.GetAtmCellNumber() > CableCloudMessage.MaxAtmCellsNumber));
                        var atmCells = new List <AtmCell>();

                        var atmCellNumberInPort = port.GetAtmCellNumber();
                        int atmCellNumberInMessage;
                        if (atmCellNumberInPort > CableCloudMessage.MaxAtmCellsNumber)
                        {
                            atmCellNumberInMessage = CableCloudMessage.MaxAtmCellsNumber;
                        }
                        else
                        {
                            atmCellNumberInMessage = atmCellNumberInPort;
                        }

                        for (var i = 0; i < atmCellNumberInMessage; i++)
                        {
                            atmCells.Add(port.GetAtmCell());
                        }

                        //OnUpdateState(DateTime.Now.Millisecond + "  Wysyłanie CableCloudMessage na port " +
                        //                 message.PortNumber + " Liczba ATMCell: " + message.AtmCells.Count
                        //                + " Port: " + port.GetPortNumber());
                        var message = new CableCloudMessage(port.GetPortNumber(), atmCells);
                        SendCableCloudMessage(message);
                        sent = true;
                    }
                }
                if (!sent)
                {
                    Thread.Sleep(10);
                }
            }
        }
Exemplo n.º 3
0
        public void ReceiveCableCloudMessage(CableCloudMessage cableCloudMessage)
        {
            OnUpdateState("[RECEIVED] Port: " + cableCloudMessage.PortNumber + ", " + cableCloudMessage.ExtractAtmCells().Count +
                          " cells");

            /* foreach (var cell in ExtractAtmCells(cableCloudMessage))
             *   CommutationMatrix.AddAtmCellToInputPort(cell, cableCloudMessage.PortNumber);
             */
            var message = CommutationMatrix.CommuteAllCells(cableCloudMessage.ExtractAtmCells(),
                                                            cableCloudMessage.PortNumber);

            if (message != null)
            {
                SendCableCloudMessage(message);
            }
            else
            {
                OnUpdateState("[UNKNOWN_DESTINATION]");
            }
        }
        public void StreamSerializeCableCloudMessageTest()
        {
            var tcpListener = new TcpListener(IPAddress.Loopback, 10000);

            tcpListener.Start();
            var acceptTask = AcceptTask(tcpListener);

            var client1 = new TcpClient();

            client1.Connect(IPAddress.Loopback, 10000);
            var client2 = acceptTask.Result;


            var expected = new CableCloudMessage(1, AtmCell.Generate(1, 1, "TEST"));

            BinarySerializer.SerializeToStream(expected, client1.GetStream());
            var actual = (CableCloudMessage)BinarySerializer.DeserializeFromStream(client2.GetStream());

            Assert.AreEqual(expected.PortNumber, actual.PortNumber);
        }
Exemplo n.º 5
0
 private void SendCableCloudMessage(CableCloudMessage cableCloudMessage)
 {
     Send(cableCloudMessage);
     OnUpdateState("[" + DateTime.Now + "] Message sent on port: " + cableCloudMessage.PortNumber);
     OnUpdateState("[" + DateTime.Now + "] Sent " + cableCloudMessage.ExtractAtmCells().Count + " atmcells");
 }
Exemplo n.º 6
0
 protected override void Receive(CableCloudMessage cableCloudMessage)
 {
     ReceiveCableCloudMessage(cableCloudMessage);
 }
Exemplo n.º 7
0
 protected override void Receive(CableCloudMessage cableCloudMessage)
 {
     MessageReceived(cableCloudMessage.ToString());
     OnUpdateState("Received: " + cableCloudMessage.ExtractAtmCells().Count + " ATMCells.");
 }
Exemplo n.º 8
0
 protected void Send(CableCloudMessage cableCloudMessage)
 {
     _dataPlaneConnectionComponent.Send(cableCloudMessage);
 }
Exemplo n.º 9
0
 protected abstract void Receive(CableCloudMessage cableCloudMessage);