#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 HeuristicLab.Hive.Server.Core.InternalInterfaces.DataAccess;
using HeuristicLab.PluginInfrastructure;
using System.Runtime.CompilerServices;
///
/// The service locator for the server core
///
public class ServiceLocator {
private static DiscoveryService discoveryService =
new DiscoveryService();
private static ITransactionManager transManager = null;
private static IClientAdapter clientAdapter = null;
private static IClientGroupAdapter clientGroupAdapter = null;
private static IResourceAdapter resourceAdapter = null;
private static IUserAdapter userAdapter = null;
private static IUserGroupAdapter userGroupAdapter = null;
private static IPermissionOwnerAdapter permOwnerAdapter = null;
///
/// Gets the db transaction manager
///
///
[MethodImpl(MethodImplOptions.Synchronized)]
public static ITransactionManager GetTransactionManager() {
if (transManager == null) {
transManager = discoveryService.GetInstances()[0];
}
return transManager;
}
///
/// Gets the client database adapter
///
///
[MethodImpl(MethodImplOptions.Synchronized)]
public static IClientAdapter GetClientAdapter() {
if (clientAdapter == null) {
clientAdapter = discoveryService.GetInstances()[0];
}
return clientAdapter;
}
///
/// Gets the client group database adapter
///
///
[MethodImpl(MethodImplOptions.Synchronized)]
public static IClientGroupAdapter GetClientGroupAdapter() {
if (clientGroupAdapter == null) {
clientGroupAdapter = discoveryService.GetInstances()[0];
}
return clientGroupAdapter;
}
///
/// Gets the resource database adapter
///
///
[MethodImpl(MethodImplOptions.Synchronized)]
public static IResourceAdapter GetResourceAdapter() {
if (resourceAdapter == null) {
resourceAdapter = discoveryService.GetInstances()[0];
}
return resourceAdapter;
}
///
/// Gets the user database adapter
///
///
[MethodImpl(MethodImplOptions.Synchronized)]
public static IUserAdapter GetUserAdapter() {
if (userAdapter == null) {
userAdapter = discoveryService.GetInstances()[0];
}
return userAdapter;
}
///
/// Gets the user group database adapter
///
///
[MethodImpl(MethodImplOptions.Synchronized)]
public static IUserGroupAdapter GetUserGroupAdapter() {
if (userGroupAdapter == null) {
userGroupAdapter = discoveryService.GetInstances()[0];
}
return userGroupAdapter;
}
///
/// Gets the permission owner database adapter
///
///
[MethodImpl(MethodImplOptions.Synchronized)]
public static IPermissionOwnerAdapter GetPermissionOwnerAdapter() {
if (permOwnerAdapter == null) {
permOwnerAdapter = discoveryService.GetInstances()[0];
}
return permOwnerAdapter;
}
}