Free cookie consent management tool by TermsFeed Policy Generator

source: branches/CEDMA-Refactoring-Ticket419/HeuristicLab.Hive.Client.Core/ConfigurationManager.cs @ 978

Last change on this file since 978 was 919, checked in by kgrading, 16 years ago

refactored for #418, disabled the Client Console Project

File size: 3.1 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using System;
23using System.Collections.Generic;
24using System.Linq;
25using System.Text;
26using HeuristicLab.Hive.Contracts.BusinessObjects;
27using HeuristicLab.Hive.Client.ExecutionEngine;
28using HeuristicLab.Hive.Client.Core.ClientConsoleService;
29
30namespace HeuristicLab.Hive.Client.Core {
31  /// <summary>
32  /// accesses the Server and sends his data (uuid, uptimes, hardware config)
33  /// </summary>
34  public class ConfigurationManager {
35    private static ConfigurationManager instance = null;
36
37    public Core Core { get; set; }
38    private ClientInfo clientInfo;   
39    private Guid guid;
40
41    public static ConfigurationManager GetInstance() {
42      if (instance == null) {
43        instance = new ConfigurationManager();
44      }
45      return instance;
46    }
47
48   
49
50    /// <summary>
51    /// Constructor for the singleton, must recover Guid, Calendar, ...
52    /// </summary>
53    private ConfigurationManager() {
54      //retrive GUID from XML file, or burn in hell. as in hell. not heaven.
55      //this won't work this way. We need a plugin for XML Handling.
56      guid = Guid.NewGuid();
57      clientInfo = new ClientInfo();
58      clientInfo.ClientId = Guid.NewGuid();
59      clientInfo.NrOfCores = Environment.ProcessorCount;
60      clientInfo.Memory = 1024;
61      clientInfo.Name = Environment.MachineName;
62
63    }
64
65    public ClientInfo GetClientInfo() {
66      return clientInfo;         
67    }
68
69    public StatusCommons GetStatusForClient() {
70      StatusCommons st = new StatusCommons();
71      st.ClientGuid = guid;
72      st.ConnectedSince = clientInfo.Login;
73      //This is just Temporary!
74      st.JobsAborted = 0;
75      st.JobsDone = 0;
76      st.JobsFetched = 0;
77      st.Status = StatusCommons.ClientStatusEnum.Connected;
78
79      Dictionary<long, Executor> engines = Core.GetExecutionEngines();
80      foreach (KeyValuePair<long, Executor> kvp in engines) {
81        Executor e = kvp.Value;
82        st.Jobs.Add(new JobStatus { JobId = e.JobId, Progress = e.Progress, Since = e.CreationTime });
83      }
84      return st;     
85    }
86
87    public void Loggedin() {
88      if (clientInfo == null) {
89        clientInfo = new ClientInfo();
90      }
91      clientInfo.Login = DateTime.Now;
92    }
93
94    public void Connect(Guid guid) {
95    }
96
97  }
98}
Note: See TracBrowser for help on using the repository browser.