예제 #1
0
 public Subnetwork(Subnetwork subnet)
 {
     subnetworkName  = subnet.subnetworkName;
     logs            = DateTime.UtcNow.ToString("HH:mm:ss.fff") + $" >> {subnetworkName} >> " + "Subnetwork created." + Environment.NewLine;
     networkNodeList = new List <NetworkNode>();
     networkNodeList.AddRange(subnet.networkNodeList);
 }
예제 #2
0
 public LinkResourceManager(LinkResourceManager LRM)
 {
     LRMName        = LRM.LRMName;
     subnetworkName = LRM.subnetworkName;
     linkList       = new List <CommandLibrary.Link>();
     linkList.AddRange(LRM.linkList);
     self = LRM.self;
 }
예제 #3
0
 public Domain(string id, string nccId, int nccPort, string pcId, int pcPort, Dictionary <string, string> dictionary, MainWindow window)
 {
     logs           = DateTime.UtcNow.ToString("HH:mm:ss.fff") + $" >> {id} >> " + "Domain created." + Environment.NewLine;
     mainWindow     = window;
     ncc            = new NCC(this, nccPort, nccId);
     pc             = new PC(this, pcPort, pcId, dictionary);
     domainName     = id;
     mainSubnetwork = null;
 }
예제 #4
0
 public RC(string rcId, int rcPort, Subnetwork self)
 {
     this.rcPort = rcPort;
     this.rcId   = rcId;
     this.self   = self;
     links       = new List <Link>();
     Reader();
     rcIPEP     = new IPEndPoint(IPAddress.Parse(host), rcPort);
     serverIPEP = new IPEndPoint(IPAddress.Parse(host), 50000);
     socket     = new Socket(SocketType.Stream, ProtocolType.Tcp);
     socket.Bind(rcIPEP);
     socket.BeginConnect(serverIPEP, new AsyncCallback(ConnectCallback), socket);
 }
예제 #5
0
 public LinkResourceManager(string lrmId, int lrmPort, Subnetwork selfSub)
 {
     LRMName        = lrmId;
     self           = selfSub;
     subnetworkName = self.ReturnName();
     linkList       = new List <CommandLibrary.Link>();
     Reader();
     LRMIPEP    = new IPEndPoint(IPAddress.Parse(host), lrmPort);
     serverIPEP = new IPEndPoint(IPAddress.Parse(host), 50000);
     socket     = new Socket(SocketType.Stream, ProtocolType.Tcp);
     socket.Bind(LRMIPEP);
     socket.BeginConnect(serverIPEP, new AsyncCallback(ConnectCallback), socket);
     Console.WriteLine("finish");
 }
예제 #6
0
 public CC(string ccId, int ccPort, Subnetwork self)
 {
     connectionList = new List <Connection>();
     this.ccPort    = ccPort;
     this.ccId      = ccId;
     this.self      = self;
     ccIPEP         = new IPEndPoint(IPAddress.Parse(host), ccPort);
     serverIPEP     = new IPEndPoint(IPAddress.Parse(host), 50000);
     socket         = new Socket(SocketType.Stream, ProtocolType.Tcp);
     socket.Bind(ccIPEP);
     socket.BeginConnect(serverIPEP, new AsyncCallback(ConnectCallback), socket);
     counter    = 0;
     path       = new List <CommandLibrary.Link>();
     startCrack = 0;
     endCrack   = 0;
     modulation = string.Empty;
 }
예제 #7
0
 public void AddSubnetwork(Subnetwork subnet)
 {
     subnetworkList.Add(subnet);
 }
예제 #8
0
        public static Topology ReadTopology(MainWindow window)
        {
            var           path   = System.Configuration.ConfigurationManager.AppSettings["topology"];
            XmlTextReader reader = new XmlTextReader(path);

            string                      domainId          = string.Empty;
            string                      subnetworkId      = string.Empty;
            string                      oxcId             = string.Empty;
            string                      portId            = string.Empty;
            string                      portNumber        = string.Empty;
            string                      cloudPort         = string.Empty;
            string                      nccId             = string.Empty;
            int                         nccPort           = 0;
            string                      lrmId             = string.Empty;
            int                         lrmPort           = 0;
            string                      ccId              = string.Empty;
            int                         ccPort            = 0;
            string                      rcId              = string.Empty;
            int                         rcPort            = 0;
            string                      pcId              = string.Empty;
            int                         pcPort            = 0;
            string                      mainSubnetId      = string.Empty;
            int                         oxcCCPort         = 0;
            List <int>                  portList          = new List <int>();
            NetworkNode                 netNode           = null;
            Subnetwork                  subnet            = null;
            Subnetwork                  mainSubnet        = null;
            List <NetworkNode>          nodeList          = new List <NetworkNode>();
            List <Subnetwork>           subnetList        = new List <Subnetwork>();
            List <Domain>               domainList        = new List <Domain>();
            Dictionary <string, int>    dictionary        = new Dictionary <string, int>();
            Dictionary <string, string> clientsDictionary = new Dictionary <string, string>();

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                case XmlNodeType.Element:
                    if (reader.Name == "domain")
                    {
                        domainId = reader.GetAttribute("id");
                        nccId    = domainId + ":NCC";
                        nccPort  = Int32.Parse(reader.GetAttribute("ncc_port"));
                        dictionary.Add(nccId, nccPort);
                        mainSubnetId = domainId + ":" + reader.GetAttribute("subnetwork_id");
                        string lrm  = mainSubnetId + ":LRM";
                        int    lrmP = Int32.Parse(reader.GetAttribute("lrm_port"));
                        dictionary.Add(lrm, lrmP);
                        string rc  = mainSubnetId + ":RC";
                        int    rcP = Int32.Parse(reader.GetAttribute("rc_port"));
                        dictionary.Add(rc, rcP);
                        string cc  = mainSubnetId + ":CC";
                        int    ccP = Int32.Parse(reader.GetAttribute("cc_port"));
                        dictionary.Add(cc, ccP);
                        mainSubnet = new Subnetwork(mainSubnetId, lrm, lrmP, cc, ccP, rc, rcP, window);
                        pcPort     = Int32.Parse(reader.GetAttribute("pc_port"));
                        pcId       = domainId + ":PC";
                        dictionary.Add(pcId, pcPort);
                    }
                    else if (reader.Name == "subnetwork")
                    {
                        subnetworkId = mainSubnetId + ":" + reader.GetAttribute("id");
                        ccId         = subnetworkId + ":CC";
                        ccPort       = Int32.Parse(reader.GetAttribute("cc_port"));
                        dictionary.Add(ccId, ccPort);
                        rcId   = subnetworkId + ":RC";
                        rcPort = Int32.Parse(reader.GetAttribute("rc_port"));
                        dictionary.Add(rcId, rcPort);
                        lrmId   = subnetworkId + ":LRM";
                        lrmPort = Int32.Parse(reader.GetAttribute("lrm_port"));
                        dictionary.Add(lrmId, lrmPort);
                    }
                    else if (reader.Name == "oxc")
                    {
                        oxcId      = subnetworkId + ":" + reader.GetAttribute("id");
                        portNumber = reader.GetAttribute("port_number");
                        cloudPort  = reader.GetAttribute("cloud_port");
                        oxcCCPort  = Int32.Parse(reader.GetAttribute("cc_port"));
                        dictionary.Add(oxcId, oxcCCPort);
                    }
                    else if (reader.Name == "port")
                    {
                        portId = reader.GetAttribute("id");
                    }
                    else if (reader.Name == "client")
                    {
                        string clientId = reader.GetAttribute("id");
                        string portName = reader.GetAttribute("port_name");
                        int    cpccPort = Int32.Parse(reader.GetAttribute("cpcc_port"));
                        clientsDictionary.Add(clientId, domainId);
                        dictionary.Add(domainId + ":" + clientId + ":CPCC", cpccPort);
                    }
                    break;

                case XmlNodeType.Text:
                    Console.WriteLine(reader.Value);
                    break;

                case XmlNodeType.EndElement:
                    if (reader.Name == "domain")
                    {
                        Domain domain = new Domain(domainId, nccId, nccPort, pcId, pcPort, clientsDictionary, window);
                        domain.AddMainSubnetwork(mainSubnet);
                        foreach (Subnetwork sn in subnetList)
                        {
                            domain.AddSubnetwork(sn);
                        }
                        domainList.Add(domain);
                        subnetList.Clear();
                        subnet = null;
                    }
                    else if (reader.Name == "subnetwork")
                    {
                        subnet = new Subnetwork(subnetworkId, lrmId, lrmPort, ccId, ccPort, rcId, rcPort, window);
                        foreach (NetworkNode nn in nodeList)
                        {
                            subnet.AddNode(nn);
                        }
                        subnetList.Add(subnet);
                        nodeList.Clear();
                    }
                    else if (reader.Name == "oxc")
                    {
                        Console.WriteLine("koniec oxc!");
                        netNode = new NetworkNode(oxcId, Int32.Parse(portNumber), Int32.Parse(cloudPort), oxcCCPort, window);
                        foreach (int p in portList)
                        {
                            netNode.AddPort(p);
                        }
                        nodeList.Add(netNode);
                        portList.Clear();
                    }
                    else if (reader.Name == "port")
                    {
                        Console.WriteLine("koniec portu!");
                        portList.Add(Int32.Parse(portId));
                    }
                    break;
                }
            }
            Topology topology = new Topology(dictionary, domainList);

            return(topology);
        }
예제 #9
0
 public void AddSubnetwork(Subnetwork subnetwork)
 {
     mainSubnetwork.AddSubnetwork(subnetwork);
 }
예제 #10
0
 public void AddMainSubnetwork(Subnetwork subnet)
 {
     mainSubnetwork = subnet;
 }