#region License Information /* HeuristicLab * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL) * * This file is part of HeuristicLab. * * HeuristicLab is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * HeuristicLab is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with HeuristicLab. If not, see . */ #endregion using System; using System.Collections.Generic; using System.Linq; using System.Text; using HeuristicLab.Hive.Contracts.BusinessObjects; using HeuristicLab.Hive.Client.ExecutionEngine; using HeuristicLab.Hive.Client.Core.ClientConsoleService; namespace HeuristicLab.Hive.Client.Core { /// /// accesses the Server and sends his data (uuid, uptimes, hardware config) /// public class ConfigurationManager { private static ConfigurationManager instance = null; public Core Core { get; set; } private ClientInfo clientInfo; private Guid guid; public static ConfigurationManager GetInstance() { if (instance == null) { instance = new ConfigurationManager(); } return instance; } /// /// Constructor for the singleton, must recover Guid, Calendar, ... /// private ConfigurationManager() { //retrive GUID from XML file, or burn in hell. as in hell. not heaven. //this won't work this way. We need a plugin for XML Handling. guid = Guid.NewGuid(); clientInfo = new ClientInfo(); clientInfo.ClientId = Guid.NewGuid(); clientInfo.NrOfCores = Environment.ProcessorCount; clientInfo.Memory = 1024; clientInfo.Name = Environment.MachineName; } public ClientInfo GetClientInfo() { return clientInfo; } public StatusCommons GetStatusForClient() { StatusCommons st = new StatusCommons(); st.ClientGuid = guid; st.ConnectedSince = clientInfo.Login; //This is just Temporary! st.JobsAborted = 0; st.JobsDone = 0; st.JobsFetched = 0; st.Status = StatusCommons.ClientStatusEnum.Connected; Dictionary engines = Core.GetExecutionEngines(); foreach (KeyValuePair kvp in engines) { Executor e = kvp.Value; st.Jobs.Add(new JobStatus { JobId = e.JobId, Progress = e.Progress, Since = e.CreationTime }); } return st; } public void Loggedin() { if (clientInfo == null) { clientInfo = new ClientInfo(); } clientInfo.Login = DateTime.Now; } public void Connect(Guid guid) { } } }