Ejemplo n.º 1
0
        private void InitConnectionAsClient(PeerAddress peerAddress)
        {
            List <SuperPeerServer> onlineServers = new List <SuperPeerServer>(ConnectionsRepository.GetServers());
            SuperPeerServer        targetServer  = null;

            foreach (SuperPeerServer server in onlineServers)
            {
                if (server.GetClientInfo().PeerAddress().Equals(peerAddress))
                {
                    targetServer = server;
                }
            }

            if (targetServer == null)
            {
                return;
            }

            if (!targetServer.AllowedConnection.Equals(_superPeerClient.GetClientInfo().PeerAddress()))
            {
                return;
            }

            ConnectionPair connectionPair = CreateConnectionPair(targetServer, _superPeerClient);

            ProcessConnectionBetweenClients(connectionPair);
        }
 private static void DisplayRepositoryState()
 {
     Console.WriteLine("Clients :" + ClientRepository.GetClients().Count
                       + "\nConnections :" + ConnectionsRepository.GetConnections().Count
                       + "\nPeerClients :" + ConnectionsRepository.GetClients().Count
                       + "\nPeerServers :" + ConnectionsRepository.GetServers().Count);
 }
        private static void CleanServerFromConnectionsRepository(IClient closedClient)
        {
            List <SuperPeerServer> serverList = ConnectionsRepository.GetServers();

            foreach (SuperPeerServer server in serverList.Where(server => server.GetSuperPeerClient() == closedClient))
            {
                ConnectionsRepository.RemoveServer(server);
            }
        }