#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; } }