Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3.3-Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/ServiceLocator.cs @ 4467

Last change on this file since 4467 was 4424, checked in by cneumuel, 14 years ago
  • Added and updated License Information in every file
  • Sort and remove usings in every file
  • Deleted obsolete DataAccess.ADOHelper
  • Deleted some obsolete files
File size: 3.2 KB
RevLine 
[4368]1#region License Information
2/* HeuristicLab
[4424]3 * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
[4368]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 HeuristicLab.Hive.Contracts;
23using HeuristicLab.Hive.Slave.Communication.Properties;
24
25namespace HeuristicLab.Hive.Slave.Communication {
26  internal class ServiceLocator {
27    private static ServiceLocator instance = null;
28    private WcfServicePool<SlaveFacade.ISlaveFacade> slaveFacadePool = null;
29    private WcfServicePool<SlaveFacade.ISlaveFacade> streamedSlaveFacadePool = null;
30
31    internal static ServiceLocator Instance {
32      get {
33        if (instance == null) {
34          instance = new ServiceLocator();
35        }
36        return instance;
37      }
38    }
39
[4423]40    private string hostAddress;
[4368]41    internal string HostAddress {
[4423]42      get {
43        return hostAddress;
44      }
45      set {
46        if (hostAddress != value) {
47          hostAddress = value;
48          if (slaveFacadePool != null)
49            slaveFacadePool.HostAddress = value;
50          if (streamedSlaveFacadePool != null)
51            streamedSlaveFacadePool.HostAddress = value;
52        }
53      }
[4368]54    }
55
[4423]56    public ServiceLocator() {
57      Settings.Default.SettingChanging += new System.Configuration.SettingChangingEventHandler(Default_SettingChanging);
58    }
59
60    void Default_SettingChanging(object sender, System.Configuration.SettingChangingEventArgs e) {
61      if (slaveFacadePool != null) {
62        slaveFacadePool.Username = Settings.Default.HiveUsername;
63        slaveFacadePool.Password = Settings.Default.HivePassword;
64      }
65      if (streamedSlaveFacadePool != null) {
66        streamedSlaveFacadePool.Username = Settings.Default.HiveUsername;
67        streamedSlaveFacadePool.Password = Settings.Default.HivePassword;
68      }
69    }
70
[4368]71    internal WcfServicePool<SlaveFacade.ISlaveFacade> SlaveFacadePool {
72      get {
73        if (slaveFacadePool == null) {
74          slaveFacadePool = new WcfServicePool<SlaveFacade.ISlaveFacade>(HostAddress, Settings.Default.HiveUsername, Settings.Default.HivePassword, "SlaveHttpEndpoint");
75        }
76        return slaveFacadePool;
77      }
78    }
79
80    internal WcfServicePool<SlaveFacade.ISlaveFacade> StreamedSlaveFacadePool {
81      get {
82        if (streamedSlaveFacadePool == null) {
83          streamedSlaveFacadePool = new WcfServicePool<SlaveFacade.ISlaveFacade>(HostAddress, Settings.Default.HiveUsername, Settings.Default.HivePassword, "SlaveTcpStreamedEndpoint");
84        }
85        return streamedSlaveFacadePool;
86      }
87    }
88  }
89}
Note: See TracBrowser for help on using the repository browser.