public WorkerServerConnection(IPAddress localIp, IPAddress serverIp, int port) : base(localIp, serverIp, port) { Logging.WriteLog("Connecting to server on " + ServerUri); PerformanceService = new WorkerPerformanceService(); PerformanceServiceHost = RemoteConnection.CreateHost(UriTemplates.CreatePerformanceUri(LocalUri), typeof(IWorkerPerformanceService), PerformanceService); PerformanceServiceHost.Open(); TasksService = new WorkerTaskService(LocalUri); TasksServiceHost = RemoteConnection.CreateHost(UriTemplates.CreateTasksUri(LocalUri), typeof(IWorkerTaskService), TasksService); TasksServiceHost.Open(); var registation = RemoteConnection.CreateProxy <IWorkerRegistrationService>(UriTemplates.CreateWorkerRegistrationUri(ServerUri)); try { registation.Connect(LocalUri); } catch (Exception e) { TasksServiceHost.Close(); PerformanceServiceHost.Close(); Dispose(); throw new NoServerConnectionException(); } ConnectionControl = new ConnectionControl(this, ServerUri); }
public int GetPerformance(Uri ClientUri) { var service = RemoteConnection.CreateProxy <IWorkerPerformanceService>(UriTemplates.CreatePerformanceUri(WorkerUri)); int machinePerformance = service.GetPerformance(); return(machinePerformance / Connections.Where(connection => connection.ClientUri == ClientUri).First().Connection); }