Esempio 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);
            }
        }
        private static void CleanClientFromConnectionsRepository(IClient closedClient)
        {
            List <SuperPeerClient> clientList = ConnectionsRepository.GetClients();

            foreach (SuperPeerClient client in clientList.Where(client => client.GetSuperPeerClient() == closedClient))
            {
                ConnectionsRepository.RemoveClient(client);
            }
        }
        private static void CleanConnectionsFromConnectionsRepository(IClient closedClient)
        {
            List <ConnectionPair> connectionPairList = ConnectionsRepository.GetConnections();

            foreach (ConnectionPair connectionPair in connectionPairList.Where(connectionPair => connectionPair.ContainsClient(closedClient)))
            {
                ConnectionsRepository.RemoveConnection(connectionPair);
                connectionPair.CloseConnection(closedClient);
            }
        }
Esempio n. 6
0
 private void AddSuperPeerNodeToConnectionsRepository(ClientType clientType, SuperPeerNode superPeerNode)
 {
     if (clientType == ClientType.Client)
     {
         ConnectionsRepository.AddClient((SuperPeerClient)superPeerNode);
     }
     else
     {
         ConnectionsRepository.AddServer((SuperPeerServer)superPeerNode);
     }
 }
Esempio n. 7
0
        private ConnectionPair CreateConnectionPair(SuperPeerServer server, SuperPeerClient client)
        {
            ConnectionPair connectionPair = new ConnectionPair(server, client);

            if (!ConnectionsRepository.GetConnections().Contains(connectionPair))
            {
                ConnectionsRepository.AddConnection(connectionPair);
                return(connectionPair);
            }

            return(null);
        }