#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;
using System.Collections.Generic;
using System.Net.Security;
using System.ServiceModel;
using HeuristicLab.Services.OKB.DataTransfer;
namespace HeuristicLab.Services.OKB {
///
/// Interface of the OKB service.
///
[ServiceContract(ProtectionLevel = ProtectionLevel.EncryptAndSign)]
public interface IOKBService {
#region Platform Methods
[OperationContract]
Platform GetPlatform(long id);
[OperationContract]
IEnumerable GetPlatforms();
[OperationContract]
long AddPlatform(Platform dto);
[OperationContract]
void UpdatePlatform(Platform dto);
[OperationContract]
void DeletePlatform(long id);
#endregion
#region DataType Methods
[OperationContract]
DataType GetDataType(long id);
[OperationContract]
IEnumerable GetDataTypes();
[OperationContract]
long AddDataType(DataType dto);
[OperationContract]
void UpdateDataType(DataType dto);
[OperationContract]
void DeleteDataType(long id);
#endregion
#region AlgorithmClass Methods
[OperationContract]
AlgorithmClass GetAlgorithmClass(long id);
[OperationContract]
IEnumerable GetAlgorithmClasses();
[OperationContract]
long AddAlgorithmClass(AlgorithmClass dto);
[OperationContract]
void UpdateAlgorithmClass(AlgorithmClass dto);
[OperationContract]
void DeleteAlgorithmClass(long id);
#endregion
#region Algorithm Methods
[OperationContract]
Algorithm GetAlgorithm(long id);
[OperationContract]
IEnumerable GetAlgorithms();
[OperationContract]
long AddAlgorithm(Algorithm dto);
[OperationContract]
void UpdateAlgorithm(Algorithm dto);
[OperationContract]
void DeleteAlgorithm(long id);
[OperationContract]
IEnumerable GetAlgorithmUsers(long algorithmId);
[OperationContract]
void UpdateAlgorithmUsers(long algorithmId, IEnumerable users);
#endregion
#region AlgorithmData Methods
[OperationContract]
AlgorithmData GetAlgorithmData(long algorithmId);
[OperationContract]
void UpdateAlgorithmData(AlgorithmData dto);
#endregion
#region AlgorithmParameter Methods
[OperationContract]
AlgorithmParameter GetAlgorithmParameter(long id);
[OperationContract]
IEnumerable GetAlgorithmParameters(long algorithmId);
[OperationContract]
long AddAlgorithmParameter(AlgorithmParameter dto);
[OperationContract]
void UpdateAlgorithmParameter(AlgorithmParameter dto);
[OperationContract]
void DeleteAlgorithmParameter(long id);
#endregion
#region ProblemClass Methods
[OperationContract]
ProblemClass GetProblemClass(long id);
[OperationContract]
IEnumerable GetProblemClasses();
[OperationContract]
long AddProblemClass(ProblemClass dto);
[OperationContract]
void UpdateProblemClass(ProblemClass dto);
[OperationContract]
void DeleteProblemClass(long id);
#endregion
#region Problem Methods
[OperationContract]
Problem GetProblem(long id);
[OperationContract]
IEnumerable GetProblems();
[OperationContract]
long AddProblem(Problem dto);
[OperationContract]
void UpdateProblem(Problem dto);
[OperationContract]
void DeleteProblem(long id);
[OperationContract]
IEnumerable GetProblemUsers(long problemId);
[OperationContract]
void UpdateProblemUsers(long problemId, IEnumerable users);
#endregion
#region ProblemData Methods
[OperationContract]
ProblemData GetProblemData(long problemId);
[OperationContract]
void UpdateProblemData(ProblemData dto);
#endregion
#region ProblemParameter Methods
[OperationContract]
ProblemParameter GetProblemParameter(long id);
[OperationContract]
IEnumerable GetProblemParameters(long problemId);
[OperationContract]
long AddProblemParameter(ProblemParameter dto);
[OperationContract]
void UpdateProblemParameter(ProblemParameter dto);
[OperationContract]
void DeleteProblemParameter(long id);
#endregion
#region Result Methods
[OperationContract]
Result GetResult(long id);
[OperationContract]
IEnumerable GetResults(long algorithmId);
[OperationContract]
long AddResult(Result dto);
[OperationContract]
void UpdateResult(Result dto);
[OperationContract]
void DeleteResult(long id);
#endregion
#region Experiment Methods
[OperationContract]
Experiment GetExperiment(long id);
[OperationContract]
IEnumerable GetExperiments(long algorithmId, long problemId);
[OperationContract]
long AddExperiment(Experiment dto);
[OperationContract]
void DeleteExperiment(long id);
#endregion
#region Run Methods
[OperationContract]
Run GetRun(long id);
[OperationContract]
IEnumerable GetRuns(long experimentId);
[OperationContract]
long AddRun(Run dto);
[OperationContract]
void DeleteRun(long id);
#endregion
#region Query Methods
[OperationContract]
IEnumerable GetFilters();
[OperationContract]
long QueryNumberOfRuns(Filter filter);
[OperationContract]
IEnumerable QueryRuns(Filter filter);
#endregion
}
}