#region License Information /* HeuristicLab * Copyright (C) 2002-2010 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.Net.Security; using System.ServiceModel; using HeuristicLab.Services.OKB.DataAccess; namespace HeuristicLab.Services.OKB { /// /// Service interface for submitting new s. /// [ServiceContract(SessionMode = SessionMode.Required, ProtectionLevel = ProtectionLevel.EncryptAndSign)] public interface IRunnerService { /// /// Logs the current user in. In case the user or client /// does not exist yet, they are created on the server. This /// method is currently not used for authentication but merely /// for auditing. /// /// The clientname. /// true if the login was successful; false otherwise. [OperationContract(IsInitiating = true)] bool Login(string clientname); /// /// Gets a : A partially populated object /// graph to enable selection of algorithm and problem for a certain /// platofrm. /// /// Name of the platform. /// A . [OperationContract(IsInitiating = false)] StarterKit GetStarterKit(string platformName); /// /// Get all necessary information to conduct an experiment. This retrieves the /// 's: /// /// s /// s /// and their respective s /// /// as well as the 's: /// /// /// s /// /// /// The algorithm. /// The problem. /// A more complete object graph contained in an /// . [OperationContract(IsInitiating = false)] ExperimentKit PrepareExperiment(Algorithm algorithm, Problem problem); /// /// Adds the a new . /// /// The is created if necessary as well as /// all s and s. If an /// identical experiment has been conducted before the new run is /// linked to this previous experiment instead. /// /// The algorithm. /// The problem. /// The project. [OperationContract(IsInitiating = false)] void AddRun(Algorithm algorithm, Problem problem); /// /// Determines whether this instance is connected. /// /// /// true if this instance is connected; otherwise, false. /// [OperationContract(IsInitiating = false)] bool IsConnected(); /// /// Logout out and closes the connection. /// [OperationContract(IsInitiating = false, IsTerminating = true, IsOneWay = true)] void Logout(); } }