Exemplo n.º 1
0
        private void AllocateSlots(NetworkPackage networkPackage)
        {
            //TimeStamp.WriteLine("{0} >> Received L CON REQ from {1} {2}", "LRMs", networkPackage.sendingClientId, networkPackage.message);

            string[] splittedMessage = networkPackage.message.Split(':');
            string[] MessageLRMs     = splittedMessage[0].Split(' ');

            for (int i = 0; i < MessageLRMs.Length; i++)
            {
                //TimeStamp.WriteLine("{0} >> Received ALLOCATE SLOTS from {1}", "LRM_" + MessageLRMs[i], networkPackage.sendingClientId);
                LRM lrm = LRMs.Find(x => x.linkId == Int32.Parse(MessageLRMs[i]));
                if (lrm.AddCracks(splittedMessage[1]))
                {
                    Console.WriteLine("{0} {1} :: slots from {2} to {3} allocated", TimeStamp.TAB, "LRM_" + MessageLRMs[i], splittedMessage[1].Split(' ')[0], splittedMessage[1].Split(' ')[1]);
                }
                lrm.contacts.Add(networkPackage.sendingClientId);
            }
            TimeStamp.WriteLine("{0} >> LINK CONNECTION RESPONSE sent to {1}", "LRMs", networkPackage.sendingClientId);
            if (splittedMessage.Length != 3)
            {
                NetworkPackage response = new NetworkPackage(
                    "LRMs",
                    networkPackage.sendingClientId,
                    Command.Slots_Allocated
                    );
                Send(response);
            }
        }
Exemplo n.º 2
0
        public static List <LRM> ReadLinks()
        {
            List <LRM>  result = new List <LRM>();
            XmlDocument XmlDoc = new XmlDocument();

            try
            {
                XmlDoc.Load("Links.xml");
                Console.WriteLine("Links.xml załadowany!");
                int count = XmlDoc.GetElementsByTagName("Link").Count;
                for (int i = 0; i < count; i++)
                {
                    XmlAttributeCollection coll = XmlDoc.GetElementsByTagName("Link").Item(i).Attributes;
                    LRM readLink = new LRM(
                        Int32.Parse(XmlDoc.GetElementsByTagName("Link").Item(i).InnerText), // linkId
                        Int32.Parse(coll.Item(4).InnerText)                                 //length <-----trzeba dodac dlugosci do XML !
                        );

                    result.Add(readLink);
                }
            }
            catch (XmlException exc)
            {
                Console.WriteLine(exc.Message);
            }

            return(result);
        }
Exemplo n.º 3
0
        public void AlarmCC(int lrmID)
        {
            LRM lrm = LRMs.Find(x => x.linkId == lrmID);

            foreach (string contact in lrm.contacts)
            {
                TimeStamp.WriteLine("{0} >> LINK DOWN sent to {1}, link: {2}", "LRMs", contact, lrm.linkId);
                Send(new NetworkPackage(
                         "LRMs",
                         contact,
                         Command.Link_Down,
                         lrm.linkId.ToString()
                         ));
            }
        }
Exemplo n.º 4
0
        private void DeallocateSlots(NetworkPackage networkPackage)
        {
            //TimeStamp.WriteLine("{0} >> Received RM L CON REQ from {1} {2}", "LRMs", networkPackage.sendingClientId, networkPackage.message);

            string[] splittedMessage = networkPackage.message.Split(':');
            string[] MessageLRMs     = splittedMessage[0].Split(' ');

            for (int i = 0; i < MessageLRMs.Length; i++)
            {
                //TimeStamp.WriteLine("{0} >> Received ALLOCATE SLOTS from {1}", "LRM_" + MessageLRMs[i], networkPackage.sendingClientId);
                LRM lrm = LRMs.Find(x => x.linkId == Int32.Parse(MessageLRMs[i]));
                Console.WriteLine("{0} {1} :: slots from {2} to {3} released", TimeStamp.TAB, "LRM_" + MessageLRMs[i], splittedMessage[1].Split(' ')[0], splittedMessage[1].Split(' ')[1]);
                lrm.ReleaseCracks(splittedMessage[1]);
            }
            TimeStamp.WriteLine("{0} >> REMOVE LINK CONNECTION RESPONSE sent to {1}", "LRMs", networkPackage.sendingClientId);
            NetworkPackage response = new NetworkPackage(
                "LRMs",
                networkPackage.sendingClientId,
                Command.Remove_Link_Connection_Response
                );

            Send(response);
        }