#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 {
///
/// Allows updating the implementation of algorithms and problems. All
/// other entities can be modified using the
///
[ServiceContract(ProtectionLevel = ProtectionLevel.EncryptAndSign)]
public interface IAdminService {
///
/// Gets all available platforms.
///
/// A list of s.
[OperationContract]
Platform[] GetPlatforms();
///
/// Gets the complete algorithm object graph up to the following entities:
///
/// - Parameter
/// - Algorithm_Paramters.Parameter.DataType
/// - Algorithm_Results.Result.DataType
///
///
/// The algorithm id.
/// An
[OperationContract]
Algorithm GetCompleteAlgorithm(int id);
///
/// Gets the complete problem object graph up to the following entities:
///
/// - Platform
/// - SolutionRepresentation
/// - Problem_Parameters.Parameter
/// - IntProblemCharacteristicValues.ProblemCharacteristic.DataType
/// - FloatProblemCharacteristicValues.ProblemCharacteristic.DataType
/// - CharProblemCharacteristicValues.ProblemCharacteristic.DataType
///
///
/// The problem id.
/// A
[OperationContract]
Problem GetCompleteProblem(int id);
///
/// Updates the algorithm object graph including the following properties and linked entitites:
///
/// - Name
/// - Description
/// - AlgorithmClassId
/// - PlatformId
/// - Algorithm_Parameters
/// - Algorithm_Results
///
///
/// New s or s will not be
/// created but have to be pre-existing.
///
///
/// The algorithm.
[OperationContract]
void UpdateCompleteAlgorithm(Algorithm algorithm);
///
/// Updates the problem object graph including the following properties and linked entities:
///
/// - Name
/// - Description
/// - ProblemClassId
/// - PlatformId
/// - SolutionRepresentationId
/// - IntProblemCharacteristicValues.Value
/// - FloatProblemCharacteristicValues.Value
/// - CharProblemCharacteristicValues.Value
/// - Problem_Parameters
///
///
/// New s or s will
/// not be created but have to be pre-existing.
///
///
/// The problem.
[OperationContract]
void UpdateCompleteProblem(Problem problem);
}
}