Ejemplo n.º 1
0
        public Server(ServerUserInterface.callbackTable_ _serverUserInterfaceCallbackTable)
        {
            serverUserInterfaceCallbackTable = _serverUserInterfaceCallbackTable;
            clientManager = new ClientManager();
            accountsManager = new AccountsManager(@"accounts.xml");
            accountsManager.loadAccounts();

            //REVISIT: some hard-coded stuff here needs cleanup when file operations are in place
            serverRingsInfo = new ServerRingInfo[Constants.NUM_RINGS];
            AccountsManager ringAccountsManager;
            for(int index = 0; index < serverRingsInfo.Length; index ++)
            {
                ringAccountsManager = new AccountsManager(@"accounts.xml");
                ringAccountsManager.loadAccounts();
                serverRingsInfo[index] = new ServerRingInfo(Constants.DEFAULT_RINGS[index],
                    new ClientManager(), ringAccountsManager, new PeerManager(),
                    new ServerPolicyManager());
            }

            nextTokenID = 1;
        }
        private static void Main(string[] argv)
        {
            try
            {
                serverUserInterfaceInstance = new ServerUserInterface();
                Server server = new Server(serverUserInterfaceInstance.callbackTable);
                //Start the server in the background
                serverThread = new Thread(new ThreadStart(server.start));
                serverThread.IsBackground = true;
                serverThread.Name = "Background Server(process requests)";
                serverThread.Start();

                Application.ApplicationExit += new EventHandler(server.exitHandler);
                Application.Run(serverUserInterfaceInstance);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }