コード例 #1
0
        /// <summary>
        /// zmienne odczytywane z comboBoxe'a przy zestawianiu połączenia,
        /// inicjuje je tu by do rozłączania połączenia nie używać danych odczytywanych z comboboxa
        /// tylko żeby brać te same wartości co zestawione połączenie
        /// </summary>
        //public static string destination, demandedCapacity;


        /// <summary>
        /// Konstruktor obiektu z klasy ClientApplication
        /// </summary>
        /// <param name="ClientIP">IP aplikacji klienckiej</param>
        /// <param name="ClientPort">Port aplikacji klienckiej</param>
        /// <param name="CloudPort">Port chmury</param>
        public ClientApplication(string ClientIP, string ClientPort, string CloudPort)
        {
            //Ustawienie CultureInfo na en-US spowoduje wyświetlanie się wyłapanych Exceptions w języku angielskim
            // Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
            //Zainicjowanie okna WindowsForm
            InitializeComponent();
            //Przypisanie referencji na dany obiekt
            _ClientApplication = this;
            //Przypisanie obiektowi IP aplikacji klienta, które zostało przekazane przez konstruktor z okna poziomu StartClientApplication
            this.ClientIP = ClientIP;
            //Przypisanie obiektowi Portu aplikacji klienta, które zostało przekazane przez konstruktor z okna poziomu StartClientApplication
            this.ClientPort = ClientPort;
            //Przypisanie obiektowi Portu chmury, które zostało przekazane przez konstruktor z okna poziomu StartClientApplication
            this.CloudPort = CloudPort;
            //Inicjalizacja listy zawierajacej ip klientów
            clientsiplist = new List <string>();
            //Inicjalizacja listy zawierajacej ip chmury, przez które będą łączyć się apliakcje klienckie
            cloudsiplist = new List <string>();
            //Liczba klientów - pobrana z pliku konfiguracyjnego
            int NbOfClients = Int32.Parse(ConfigurationManager.AppSettings[0]);

            //Odczytywanie z pliku konfiguracyjnego
            for (int i = 1; i <= NbOfClients; i++)
            {
                //String niezbędny do porównania IP, a później odpowiedniego nazwania aplikacji
                string temp  = "ClientIP" + (i - 1);
                string temp2 = "ClientIP" + (i - 1) + (i - 1);

                //Dodawanie odczytanych IP aplikacjji klienckich do listy
                cloudsiplist.Add(ConfigurationManager.AppSettings[i + 2 * NbOfClients]);
                //Sprawdzenie czy wpisane IP w StartClientApplication jest takie samo IP w pliku konfiguracyjnym
                if (ConfigurationManager.AppSettings[i] == _ClientApplication.ClientIP)
                {
                    //Nadanie nazwy aplikacji - zgodnie z odczytanym IP z pliku konfiguracyjnego
                    string tempstring = ConfigurationManager.AppSettings[temp2];
                    _ClientApplication.Text = tempstring;
                    ClientName = tempstring;
                    //Dodanie IP klienckiej aplikacji do list
                    clientsiplist.Add(ConfigurationManager.AppSettings[i]);
                }
                else
                {
                    //Dodanie IP klienckiej aplikacji do listy
                    clientsiplist.Add(ConfigurationManager.AppSettings[i]);
                    //Dodanie IP aplikacji kliencjiej do listy
                    _ClientApplication.comboBoxClients.Items.Add(ConfigurationManager.AppSettings[temp2]);
                }
            }

            _CPCC = new CPCC(_ClientApplication.ClientIP, ClientName, ref _ClientApplication);
            _CPCC.runCPCC();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            args = Environment.GetCommandLineArgs();

            new Thread(() => {
                Thread.Sleep(1000);
                try {
                    lock (Program.waiterConfig) {
                        //Monitor.Wait(Program.waiterConfig);
                        //String config = String.Concat(File.ReadAllLines("./../../../../sharedResources/tsst_config.xml"));
                        //ConfigLoader.LoadConfig(config, "1");
                        String config = String.Concat(File.ReadAllLines(args[1]));
                        ConfigLoader.LoadConfig(config, args[2]);
                        lock (Program.waiterManagement) {
                            Monitor.Pulse(Program.waiterManagement);
                        }
                    }
                } catch (Exception e) {
                    GUIWindow.PrintLog(e.StackTrace);
                }
            }).Start();

            new Thread(() => {
                lock (Program.waiterManagement) {
                    Monitor.Wait(Program.waiterManagement);
                }
                new ManagementCenterConnection();
            }).Start();


            new Thread(() => {
                lock (Program.waiterCloud){
                    Monitor.Wait(Program.waiterCloud);
                }
                cloudConnection = new CloudConnection();
            }).Start();

            new Thread(() => {
                Thread.Sleep(2500);

                /*lock (Program.waiterCloud) {
                 *  Monitor.Wait(Program.waiterCloud);
                 * }*/
                cpcc = new CPCC();
            }).Start();


            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new GUIWindow());
        }
コード例 #3
0
 //Konstruktor obiektu klasy CPCC
 public CPCC(string OurClientIP, string name, ref ClientApplication ap)
 {
     ClientIP           = OurClientIP;
     _clientApplication = ap;
     ClientName         = name;
     _cpcc = this;
     establishedConnections = new List <string>();
     establishedConnections.Add("Franek");
     establishedConnections.Add("127.0.0.2");
     establishedConnections.Add("Janek");
     establishedConnections.Add("127.0.0.4");
     establishedConnections.Add("Szymon");
     establishedConnections.Add("127.0.0.6");
 }
コード例 #4
0
 private void startService()
 {
     client.startService();
     cpcc = new CPCC(log, client.CloudIP, client.CloudPort, client.name, client.nodeName, client.networkController);
     cpcc.OnNewConnectionEstablished += new CPCC.NewConnection(newConnection);
 }
コード例 #5
0
ファイル: MainWindow.xaml.cs プロジェクト: sopel30/tsst2
 private void startService()
 {
     client.startService();
     cpcc = new CPCC(log, client.CloudIP, client.CloudPort, client.name, client.nodeName, client.networkController);
     cpcc.OnNewConnectionEstablished += new CPCC.NewConnection(newConnection);
 }