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); } }
private void AddSuperPeerNodeToConnectionsRepository(ClientType clientType, SuperPeerNode superPeerNode) { if (clientType == ClientType.Client) { ConnectionsRepository.AddClient((SuperPeerClient)superPeerNode); } else { ConnectionsRepository.AddServer((SuperPeerServer)superPeerNode); } }
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); }