Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Services.OKB/3.3/Interfaces/IAdminService.cs @ 4407

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

Worked on OKB data model and services (#1174)

File size: 4.7 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  /// <summary>
28  /// Service of administrating the OKB.
29  /// </summary> 
30  [ServiceContract(ProtectionLevel = ProtectionLevel.EncryptAndSign)]
31  public interface IAdminService {
32    [OperationContract]
33    void AddAlgorithmClass(AlgorithmClass algorithmClass);
34    [OperationContract]
35    AlgorithmClass[] GetAlgorithmClasses();
36    [OperationContract]
37    void UpdateAlgorithmClass(AlgorithmClass algorithmClass);
38    [OperationContract]
39    void DeleteAlgorithmClass(long algorithmClassId);
40
41    [OperationContract]
42    void AddAlgorithm(Algorithm algorithm);
43    [OperationContract]
44    Algorithm[] GetAlgorithms();
45    [OperationContract]
46    void UpdateAlgorithm(Algorithm algorithm);
47    [OperationContract]
48    void DeleteAlgorithm(long algorithmId);
49
50
51
52
53
54    /// <summary>
55    /// Gets all available platforms.
56    /// </summary>
57    /// <returns>A list of <see cref="Platform"/>s.</returns>
58    [OperationContract]
59    Platform[] GetPlatforms();
60
61    /// <summary>
62    /// Gets the complete algorithm object graph up to the following entities:
63    /// <list type="bullet">
64    /// <item>Parameter</item>
65    /// <item>Algorithm_Paramters.Parameter.DataType</item>
66    /// <item>Algorithm_Results.Result.DataType</item>
67    /// </list>
68    /// </summary>
69    /// <param name="id">The algorithm id.</param>
70    /// <returns>An <see cref="Algorithm"/></returns>
71    [OperationContract]
72    Algorithm GetCompleteAlgorithm(int id);
73
74    /// <summary>
75    /// Gets the complete problem object graph up to the following entities:
76    /// <list type="bullet">
77    /// <item>Platform</item>
78    /// <item>SolutionRepresentation</item>
79    /// <item>Problem_Parameters.Parameter</item>
80    /// <item>IntProblemCharacteristicValues.ProblemCharacteristic.DataType</item>
81    /// <item>FloatProblemCharacteristicValues.ProblemCharacteristic.DataType</item>
82    /// <item>CharProblemCharacteristicValues.ProblemCharacteristic.DataType</item>
83    /// </list>
84    /// </summary>
85    /// <param name="id">The problem id.</param>
86    /// <returns>A <see cref="Problem"/></returns>
87    [OperationContract]
88    Problem GetCompleteProblem(int id);
89
90    /// <summary>
91    /// Updates the algorithm object graph including the following properties and linked entitites:
92    /// <list type="bullet">
93    /// <item>Name</item>
94    /// <item>Description</item>
95    /// <item>AlgorithmClassId</item>
96    /// <item>PlatformId</item>
97    /// <item>Algorithm_Parameters</item>
98    /// <item>Algorithm_Results</item>
99    /// </list>
100    /// <remarks>
101    /// New <see cref="Parameter"/>s or <see cref="Result"/>s will not be
102    /// created but have to be pre-existing.
103    /// </remarks>
104    /// </summary>
105    /// <param name="algorithm">The algorithm.</param>
106    [OperationContract]
107    void UpdateCompleteAlgorithm(Algorithm algorithm);
108
109    /// <summary>
110    /// Updates the problem object graph including the following properties and linked entities:
111    /// <list type="bullet">
112    /// <item>Name</item>
113    /// <item>Description</item>
114    /// <item>ProblemClassId</item>
115    /// <item>PlatformId</item>
116    /// <item>SolutionRepresentationId</item>
117    /// <item>IntProblemCharacteristicValues.Value</item>
118    /// <item>FloatProblemCharacteristicValues.Value</item>
119    /// <item>CharProblemCharacteristicValues.Value</item>
120    /// <item>Problem_Parameters</item>
121    /// </list>
122    /// <remarks>
123    /// New <see cref="ProblemCharacteristic"/>s or <see cref="Parameter"/>s will
124    /// not be created but have to be pre-existing.
125    /// </remarks>
126    /// </summary>
127    /// <param name="problem">The problem.</param>
128    [OperationContract]
129    void UpdateCompleteProblem(Problem problem);
130  }
131}
Note: See TracBrowser for help on using the repository browser.