Free cookie consent management tool by TermsFeed Policy Generator

source: branches/OKB/HeuristicLab.Services.OKB/3.3/Interfaces/IRunnerService.cs @ 5338

Last change on this file since 5338 was 4381, checked in by swagner, 14 years ago

Worked on OKB data model and services (#1174).

File size: 4.1 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2010 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.Net.Security;
23using System.ServiceModel;
24using HeuristicLab.Services.OKB.DataAccess;
25
26namespace HeuristicLab.Services.OKB {
27
28  /// <summary>
29  /// Service interface for submitting new <see cref="Experiment"/> <see cref="Run"/>s.
30  /// </summary>
31  [ServiceContract(SessionMode = SessionMode.Required, ProtectionLevel = ProtectionLevel.EncryptAndSign)]
32  public interface IRunnerService {
33    /// <summary>
34    /// Logs the current user in. In case the user or client
35    /// does not exist yet, they are created on the server. This
36    /// method is currently not used for authentication but merely
37    /// for auditing.
38    /// </summary>
39    /// <param name="clientname">The clientname.</param>
40    /// <returns><c>true</c> if the login was successful; <c>false</c> otherwise.</returns>
41    [OperationContract(IsInitiating = true)]
42    bool Login(string clientname);
43
44    /// <summary>
45    /// Gets a <see cref="StarterKit"/>: A partially populated object
46    /// graph to enable selection of algorithm and problem for a certain
47    /// platofrm.
48    /// </summary>
49    /// <param name="platformName">Name of the platform.</param>
50    /// <returns>A <see cref="StarterKit"/>.</returns>
51    [OperationContract(IsInitiating = false)]
52    StarterKit GetStarterKit(string platformName);
53
54    /// <summary>
55    /// Get all necessary information to conduct an experiment. This retrieves the
56    /// <see cref="Algorithm"/>'s:
57    /// <list type="bullet">
58    /// <item><see cref="Parameter"/>s</item>
59    /// <item><see cref="Result"/>s</item>
60    /// <item>and their respective <see cref="DataType"/>s</item>
61    /// </list>
62    /// as well as the <see cref="Problem"/>'s:
63    /// <list>
64    /// <item><see cref="SolutionRepresentation"/></item>
65    /// <item><see cref="Parameter"/>s</item>
66    /// </list>
67    /// </summary>
68    /// <param name="algorithm">The algorithm.</param>
69    /// <param name="problem">The problem.</param>
70    /// <returns>A more complete object graph contained in an
71    /// <see cref="ExperimentKit"/>.</returns>
72    [OperationContract(IsInitiating = false)]
73    ExperimentKit PrepareExperiment(Algorithm algorithm, Problem problem);
74
75    /// <summary>
76    /// Adds the a new <see cref="Experiment"/> <see cref="Run"/>.
77    ///
78    /// The <see cref="Experiment"/> is created if necessary as well as
79    /// all <see cref="Parameter"/>s and <see cref="Result"/>s. If an
80    /// identical experiment has been conducted before the new run is
81    /// linked to this previous experiment instead.
82    /// </summary>
83    /// <param name="algorithm">The algorithm.</param>
84    /// <param name="problem">The problem.</param>
85    /// <param name="project">The project.</param>
86    [OperationContract(IsInitiating = false)]
87    void AddRun(Algorithm algorithm, Problem problem);
88
89    /// <summary>
90    /// Determines whether this instance is connected.
91    /// </summary>
92    /// <returns>
93    ///   <c>true</c> if this instance is connected; otherwise, <c>false</c>.
94    /// </returns>
95    [OperationContract(IsInitiating = false)]
96    bool IsConnected();
97
98    /// <summary>
99    /// Logout out and closes the connection.
100    /// </summary>
101    [OperationContract(IsInitiating = false, IsTerminating = true, IsOneWay = true)]
102    void Logout();
103  }
104}
Note: See TracBrowser for help on using the repository browser.