public VCpuManager(string tcpAddress, int tcpPort, string pipeName, IPsoController psoController = null, IPsoManager psoRingManager = null) { NetworkNodeManager = new NetworkNodeManager(tcpAddress, tcpPort, pipeName); _psoController = psoController ?? new PsoController(NetworkNodeManager.NodeService.Info.Id); PsoRingManager = psoRingManager ?? new PsoRingManager(NetworkNodeManager.NodeService.Info.Id); NetworkNodeManager.NodeService.Info.ProxyParticlesAddresses = PsoRingManager.GetProxyParticlesAddresses(); var uris = new List<Uri>(); foreach (var address in NetworkNodeManager.NodeService.Info.ProxyParticlesAddresses) { var str = address.AbsoluteUri.Replace("0.0.0.0", tcpAddress); uris.Add(new Uri(str)); } NetworkNodeManager.NodeService.Info.ProxyParticlesAddresses = uris.ToArray(); NetworkNodeManager.NodeService.NeighborhoodChanged += PsoRingManager.UpdatePsoNeighborhood; NetworkNodeManager.NodeService.RegisterNode += RunOnNode; NetworkNodeManager.NodeService.StartCalculations += Run; NetworkNodeManager.NodeService.StopCalculations += () => _psoController.Stop(); PsoRingManager.CommunicationLost += NetworkNodeManager.NodeService.Deregister; _psoController.CalculationsCompleted += Finish; NetworkNodeManager.NodeService.RemoteCalculationsFinished += _psoController.RemoteControllerFinished; }
public VCpuManager(string tcpAddress, int tcpPort, string pipeName, IPsoController psoController = null, IPsoManager psoRingManager = null) { NetworkNodeManager = new NetworkNodeManager(tcpAddress, tcpPort, pipeName); _psoController = psoController ?? new PsoController(NetworkNodeManager.NodeService.Info.Id); PsoRingManager = psoRingManager ?? new PsoRingManager(NetworkNodeManager.NodeService.Info.Id); NetworkNodeManager.NodeService.Info.ProxyParticlesAddresses = PsoRingManager.GetProxyParticlesAddresses(); var uris = new List <Uri>(); foreach (var address in NetworkNodeManager.NodeService.Info.ProxyParticlesAddresses) { var str = address.AbsoluteUri.Replace("0.0.0.0", tcpAddress); uris.Add(new Uri(str)); } NetworkNodeManager.NodeService.Info.ProxyParticlesAddresses = uris.ToArray(); NetworkNodeManager.NodeService.NeighborhoodChanged += PsoRingManager.UpdatePsoNeighborhood; NetworkNodeManager.NodeService.RegisterNode += RunOnNode; NetworkNodeManager.NodeService.StartCalculations += Run; NetworkNodeManager.NodeService.StopCalculations += () => _psoController.Stop(); PsoRingManager.CommunicationLost += NetworkNodeManager.NodeService.Deregister; _psoController.CalculationsCompleted += Finish; NetworkNodeManager.NodeService.RemoteCalculationsFinished += _psoController.RemoteControllerFinished; }