Changeset 9508 for branches/OaaS/HeuristicLab.Services.Optimization.Controller/Interfaces/IControllerService.cs
- Timestamp:
- 05/22/13 15:29:15 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OaaS/HeuristicLab.Services.Optimization.Controller/Interfaces/IControllerService.cs
r9395 r9508 8 8 9 9 namespace HeuristicLab.Services.Optimization.ControllerService { 10 /// <summary> 11 /// The ControllerService represents the entry point of 12 /// the OaaS backend. It contains all possible operations 13 /// of OaaS. 14 /// </summary> 10 15 [ServiceContract(ProtectionLevel = ProtectionLevel.EncryptAndSign)] 11 16 public interface IControllerService { 17 /// <summary> 18 /// Retrieves all available scenarios, including all 19 /// their information. 20 /// </summary> 21 /// <returns>All scenarios</returns> 12 22 [OperationContract] 13 23 IEnumerable<OptimizationScenario> GetOptimizationScenarios(); 14 24 25 /// <summary> 26 /// Returns the names of all scenarios. This doesn't load 27 /// parameters or other scenario specific data. 28 /// </summary> 29 /// <returns> 30 /// The names of the scenarios, 31 /// e. g. ["Benchmark Algorithm", "Genetic Algorithm - TSP"] 32 /// </returns> 15 33 [OperationContract] 16 34 IEnumerable<string> GetOptimizationScenarioNames(); 17 35 36 /// <summary> 37 /// Retrieves a scenario by a given name including all of 38 /// it's data. 39 /// </summary> 40 /// <param name="name"> 41 /// The scenario to lookup, e. g. "Benchmark Algorithm" 42 /// </param> 43 /// <returns></returns> 18 44 [OperationContract] 19 45 OptimizationScenario GetOptimizationScenarioByName(string name); 20 46 47 /// <summary> 48 /// Schedules a scenario for certain user. 49 /// </summary> 50 /// <param name="user">The user which wants to execute a scenario.</param> 51 /// <param name="scenario">The scenario to execute.</param> 52 /// <param name="details">The title of the job, the number of repititions of the scenario and the group of the job.</param> 53 /// <returns>true, if the scenario has been successfully scheduled.</returns> 21 54 [OperationContract] 22 55 bool ScheduleOptimizationScenario(User user, OptimizationScenario scenario, JobExecutionDetails details); 23 56 57 /// <summary> 58 /// Schedules an experiment for a certain user. 59 /// </summary> 60 /// <param name="user">The user which wants to execute a scenario.</param> 61 /// <param name="experiment">The name of the experiment to schedule.</param> 62 /// <param name="details">The title of the job, the number of repititions of the experiment and the group of the job.</param> 63 /// <returns></returns> 24 64 [OperationContract] 25 65 bool ScheduleExperiment(User user, string experiment, JobExecutionDetails details); 26 66 67 /// <summary> 68 /// Returns all available jobs of a user. 69 /// </summary> 70 /// <param name="user">The user to query the jobs for.</param> 71 /// <returns>All jobs for a certain user.</returns> 27 72 [OperationContract] 28 73 IEnumerable<Job> GetJobs(User user); 29 74 75 /// <summary> 76 /// Retrievs a job by it's id. 77 /// </summary> 78 /// <param name="user">The owner of the job.</param> 79 /// <param name="id">The id of the job.</param> 80 /// <returns>The job with the given user and id.</returns> 30 81 [OperationContract] 31 82 Job GetJob(User user, string id); 32 83 84 /// <summary> 85 /// Deletes a job of a user. 86 /// </summary> 87 /// <param name="user">The owner of the job.</param> 88 /// <param name="id">The job to delete.</param> 89 /// <returns>true, if the job has been deleted.</returns> 33 90 [OperationContract] 34 91 bool DeleteJob(User user, string id); 35 92 93 /// <summary> 94 /// Returns the results of a job including the input parameters and result parameters. 95 /// </summary> 96 /// <param name="user">The owner of the job.</param> 97 /// <param name="id">The id of the job.</param> 98 /// <returns>The result and input parameters of the job.</returns> 36 99 [OperationContract] 37 100 IList<Model.Run> GetJobResults(User user, string id); 38 101 102 /// <summary> 103 /// Adds a new scenario to the system. This has to include a valid scenario xml representing all necessary inputs 104 /// for the new scenario and a scenario mapper which is capable of converting the OaaS-scenario-model into the 105 /// hive specific version. 106 /// Note: This method might be only usable by an underlying hive data access layer. 107 /// </summary> 108 /// <param name="user">The owner of the scenario (must have administrator privileges).</param> 109 /// <param name="scenarioXml">The new scenario to upload.</param> 110 /// <param name="scenarioMapper">The converter between OaaS-model and hive model.</param> 111 /// <returns>true, if the scenario has been successfully saved.</returns> 39 112 [OperationContract] 40 113 bool AddHiveScenario(User user, string scenarioXml, string scenarioMapper); 41 114 115 /// <summary> 116 /// Deletes a stored scenario including its xml and mapper. 117 /// </summary> 118 /// <param name="user">An administrator of the system.</param> 119 /// <param name="scenarioName">The name of the scenario.</param> 120 /// <returns>true, if the scenario has been deleted.</returns> 42 121 [OperationContract] 43 122 bool DeleteHiveScenario(User user, string scenarioName); 44 123 124 /// <summary> 125 /// Stores an experiment which is a tree of experiments and scenarios. 126 /// This method will schedule the experiment, if it contains job details. 127 /// </summary> 128 /// <param name="user">The owner of the experiment.</param> 129 /// <param name="experiment">The experiment including all of it's details.</param> 130 /// <returns>If scheduled it will return the job id. In every other case null will be returned.</returns> 45 131 [OperationContract] 46 132 string SaveExperiment(User user, Experiment experiment); 47 133 134 /// <summary> 135 /// Returns the names of the experiments for a certain user. 136 /// </summary> 137 /// <param name="user">The owner of the experiments.</param> 138 /// <returns>A list of experiment names.</returns> 48 139 [OperationContract] 49 140 IEnumerable<string> GetExperimentNames(User user); 50 141 142 /// <summary> 143 /// Returns all experiments. If "namesOnly" is false, the experiments include all of their details. 144 /// </summary> 145 /// <param name="user">The owner of the experiments.</param> 146 /// <param name="namesOnly">If true, returns only a list of experiments where only the Name parameter is set.</param> 147 /// <returns></returns> 51 148 [OperationContract] 52 149 IEnumerable<Experiment> GetExperiments(User user, bool namesOnly = false); 53 150 151 /// <summary> 152 /// TODO 153 /// </summary> 154 /// <param name="user"></param> 155 /// <param name="experiment"></param> 156 /// <returns></returns> 54 157 [OperationContract] 55 158 bool DeleteExperiment(User user, string experiment);
Note: See TracChangeset
for help on using the changeset viewer.